刚刚学正则表达式,以下所写只是正则的基本知识,如以后进行更深入的学习会再做补充的。
1.定义正则表达式:
#普通方式:var reg=/表达式/附加参数
eg: var reg=/white/;
var reg=/white/g
#构造函数:var reg=new RegExp("表达式",“附加参数”)
eg: var reg=new RegExp("white");
var reg=new RegExp("white","g")
推荐使用普通方式,它更简洁!
2.表达式的模式:
#普通模式:var reg=/china/;
var reg=/abc8/.
#复合模式:var reg=/^\w+$/;
var reg=/^\w+@\w+(.[a-zA-Z]{2,3})?$/;
3.正则表达式对象的方法:
方法 | 描述 |
exec | 检索字符中是正则表达式的匹配,返回找到的值,并确定其位置 |
test | 检索字符串中指定的值,返回true或false |
toSource | 返回RegExp对象的源代码 |
toString | 将RegExp对象转换成字符串 |
match | 找到一个或多个正则表达式的匹配 |
search | 检索与正则表达式相匹配的值 |
replace | 替换与正则表达式匹配的字符串 |
split | 把字符串分割为字符串数组 |
4.正则表达式的常用符号:
字符类
代码/语法 | 说明 |
\w | 匹配任何ASCII单字符[a-zA-Z0-9] |
\W | 匹配任何ASCII单字符之外的字符 |
\s | 匹配任何Unicode空白符 |
\S | 匹配任何Unicode空白符之外的字符 |
\d | 匹配任何数字[0-9] |
\D | 匹配任何数字之外的字符 |
[.....] | 匹配方括号中的所有字符 |
[^.....] | 匹配非方括号中的所有字符 |
重复类
代码/语法 | 说明 |
{n} | 匹配前一项n次 |
{n,} | 匹配前一项至少n次,至多不限 |
{n,m} | 匹配前一项至少n次,最多m次 |
{?} | 匹配前一项0次或者1次 |
{+} | 匹配前一项至少1次 |
{*} | 匹配前一项0次或者多次 |
定位符
代码\语法 | 说明 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
\b | 匹配一个单词的边界 |
\B | 匹配一个非单词的边界 |
分组
代码\语法 | 说明 |
(......) | 将几个项目组合成一个单元 |
(?......) | 与(......)类似,只是不记忆与该组合所匹配的内容 |
标志
代码\语法 | 说明 |
i | 匹配时不区分大小写 |
g | 匹配时执行全局匹配 |
m | 匹配时执行多行匹配 |
选择符:| 分隔可以用来选择的句子
最后,给两个例子:
示例一:
对年龄进行验证,年龄必须在0-120岁之间
分析:
1.10-99这个范围都是两位数,十位是1-9,个位是0-9,正则表达式是[0-9]\d。
2.0-9这个范围是一位,正则表达式为\d。
3.100-119这个范围是三位数,百位是一,十位是0-1,个位是0-9,正则表达式为1[0-1]\d。
4.根据以上可知,所有年龄的个位数都是0-9,当百位是1是十位是0-1,当年龄为两位数是十位是1-9,因此0-119这个范围的正则表达式为(1[0-1]|[1-9])?\d。
5.年龄是120是单独的一种情况需要单独列出来。
示例二:
var regCode=/^\d{6}$/;
var regMobile=/^1\d{10}$/;