正则表达式
正则表达式修饰符:
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
表达式
[abc] 查找方括号之间的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
(x|y) 查找任何以 | 分隔的选项。
元字符:
\d 查找数字。
\s 查找空白字符。
\b 匹配单词边界。
\w 查找单词
量词:
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
正则表达式的方法
test() 方法是一个正则表达式方法,用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
var patt = /e/;
patt.test("The best things in life are free!"); //true
exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
/e/.exec("The best things in life are free!"); //e
小例子:
//判断是否以13/18/15开头的手机号码
let reg = /^1[385]\d{9}$/
let str =13123456789
console.log(reg.test(str))
let reg1 = /^(18|13|15|17)0[0-9]{8}$/
let str1 =13023456789
console.log(reg1.test(str1))
//是否末尾至少包含一个至一个以上.结尾,当遇到特殊符号,应转义:\.
let reg2 = /\.+$/
let str2 = "苦苦...."
console.log(reg2.test(str2))
//验证邮箱
let reg3 =/^\w+@\w{0,10}\.(com|net|cn|org)$/
let str3 = "coihcoi@sdaqq.com"
console.log(reg3.test(str3))
//验证身份证号码
// 正则表达式:
var idcardReg = /^[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{3}([0-9]|X)$/;
var cardNo = 336767199903037878
idcardReg.test(cardNo)