一、正则表达式
正则表达式是一个神奇,通过简答的语法能干出大事情,有必要掌握一些基础的正则表示语法。
用js做测试。
1.1 斜杠 \
斜杠在正则表达式属于特殊字符,当匹配特殊字符的时候,需要进行转义,而斜杠正好被用于转移。
案例:匹配 \
开头的字符串。
var pattern = /^\\/,
str = '\\';
console.log(pattern.test(str));
结果:true
//注意:在js中,字符串中的 `\` 也是特殊字符,需要使用 `\\` 才能表示 `\` (转义了)
1.2 特殊字符串 ^
表示以什么开始。
/^q/.test('qwd');
结果:true
1.3 特殊字符 $
表示以什么结尾
/q$/.test('dq')
true
1.4 特殊字符 *
匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}
1.5 特殊字符 +
匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}
1.6 特殊字符 ?
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。
1.7 {n,m}
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格
1.8 x|y
x|y 匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
1.9 \d
\D
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[^0-9]。
1.10 小案例
匹配3-6位数字
var reg1 = /\d{3,6}/; // 不能匹配12345678
var reg2 = /[0-9]{3,6}/; //不能匹配12345678
var reg3 = /([0-9]){3,6}$/; 可以匹配