博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

正则表达式

Posted on 2015-05-23 09:22  苍老的小孩  阅读(536)  评论(0编辑  收藏  举报

刚刚学正则表达式,以下所写只是正则的基本知识,如以后进行更深入的学习会再做补充的。

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是单独的一种情况需要单独列出来。

示例二:

1.中国的邮政编码都是6位
2.手机号码都是11位,并且第1位都是1
3.邮政编码和手机号码的验证的正则表达式

var regCode=/^\d{6}$/;

var regMobile=/^1\d{10}$/;