首先了解一下正则的语法
.- 除换行符以外的所有字符。^- 字符串开头。$- 字符串结尾。\d,\w,\s- 匹配数字、字符、空格。\D,\W,\S- 匹配非数字、非字符、非空格。[a-z]- 匹配 a 到 z 中的一个字母。[A-Z]- 匹配 A 到 Z 中的一个字母。[abc]- 匹配 a、b 或 c 中的一个字母。[^abc]- 匹配除了 a、b 或 c 中的其他字母。aa|bb- 匹配 aa 或 bb。?- 0 次或 1 次匹配。*- 匹配 0 次或多次。+- 匹配 1 次或多次。{n}- 匹配 n次。{n,}- 匹配 n次以上。{m,n}- 最少 m 次,最多 n 次匹配。(expr)- 捕获 expr 子模式,以\1使用它。(?:expr)- 忽略捕获的子模式。(?=expr)- 正向预查模式 expr。(?!expr)- 负向预查模式 expr。
var pat1 = new RegExp('^[0-9]+[a-zA-Z]+[0-9]+$');
console.log(pat1.test ('7rppp333'))
// true
var pat2 = new RegExp('^\d+[a-zA-Z]+\d+$')
console.log(pat2.test('7rppp333'))
//false
为什么会不一样呢,条件都是一样的,
其结果原来是需要用转义符''转义一下,d前面加两个斜杠 \\d
var pat2 = new RegExp('^\\d+[a-zA-Z]+\\d+$')
console.log(pat2.test('7rppp333'))
此时打印出来返回的结果就是true啦
大家一定要注意这一点**