正则校验——js规则及相关方法

240 阅读1分钟

一、js方法

string.search(regexp)

匹配首次出现的下表,未匹配则返回-1

('1222222222222222222').search(/(\S{1,10})$/)
// 9

string.replace(regexp, newString)

将首次出现的内容进行替换

('hellow word').replace(/word/, '明睿')
// 'hellow 明睿'

string.match(regexp)

执行正则表达式匹配,匹配成功时返回一个数组

('hello word').match(/word/)
// ["word"]

string.matchAll(regexp)

执行正则表达式匹配,匹配字符串所有符合条件的内容

[...('hello word word').matchAll(/word/g)]

RegExp.test(string)

检测一个字符串是否匹配某个模式

/word/.test('hellow word')
// true

RegExp.exec(string)

执行正则表达式匹配,匹配成功时返回一个数组,匹配失败返回 null,同string.match(regexp)

/word/.exec('hellow word word')
// ["word"]

二、正则规则

1、元字符

元字符描述
.查找单个字符,出换行和结束符
\w查找单词字符
\W查找非单词字符
\d查找数字
\D查找非数字
\s查找空白字符
\S查找非空白字符
\b匹配单词边界
\B匹配非单词边界
\0查找NUL字符
\n查找换行符
\f查找换页符
\r查找回车符
\t查找制表符
\v查找垂直制表符
\xxx查找以八进制xxxx规定的字符
\xdd查找以十六进制dd规定的字符
\uxxxx查找以十六进制xxxx规定的Unicode字符

2、其他字符

字符描述
g全局匹配
i忽略大小写
^匹配开头
$匹配结尾
()表示字符范围
[]表示匹配其中任一字符
|表示或者
n+匹配包含至少一个n的字符串
n*匹配包含零个或多个n的字符串
n?匹配包含零个或一个n的字符串
n{x}匹配包含x个n的字符串
n{x,y}匹配包含x到y个n的字符串
n{x,}匹配包含至少x个n的序列字符串
??相当于{0,1}?
+?相当于{1,}?
*?相当与{0,}?
?=前瞻运算符,匹配位置不变

3、常见正则表达式

  • 手机号: /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
  • email:/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
  • 地址:/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i
  • 身份证号:/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
  • 邮编:/^[1-9]\d{5}(?!\d)$/
  • 匹配日期yyyy-MM-dd:/^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/

相关内容

js正则表达式语法大全