正则表达式

为什么需要

传统验证方式过于繁琐,编写非常麻烦


简单模式

只能表示具体的匹配

示例:

var reg=/china/;

var reg=/abc8/;

复合模式

可以使用通配符表达更为抽象的规则模式

示例:

var reg=/^\w+$/;//正则表达式 /^ \w+  $/

var reg=/^\w+@\w+\.((com)|(cn)|(com.cn))$/;

                     jkjp@qq.com      jkjkp2000@163.com.cn   jkjkp@sina.cn

                  \w+  --》匹配 jkjkp

   

 

正则表达式/^\w?/ 未使用$符号结束 和有$区别

       $代表以该正则表达式结尾的字符串例如

       abc$只匹配123abcrtyabc(表示要验证的数据必须以abc结束)

       如果只是abc的话,那么123abc456rtfabcfgh都可以匹配

       加了^ 表示^后面的第一位字符必须匹配的字符串首位相同,不加的话任意顺序匹配。

 

      var reg=/abc/;

alert(reg.test("dcabca")); true

      var reg=/^abc/;

alert(reg.test("dcabca")); false

      var reg=/^abc/;

alert(reg.test("abcseda")); true

      var reg=/^abc$/;

alert(reg.test("abcseda")); false

 

 

 

正则表达式符号

// 代表一个模式的开始和结束

^ 匹配字符串的开始

$ 匹配字符串的结束

\s 任何空白字符

\S 任何空白字符

\d 匹配一个数字字符,等价于[0-9]

\D 除了数字之外的任何字符,等价于[^0-9]

\w 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

\W 任何非单字字符,等价于[^a-zA-z0-9_]

.除了换行符之外的任意字符

{n,} 匹配前一项n次,或者多次( n<=

{n,m} 匹配前一项至少n次,但是不能超过m(n<=  <m)

* 匹配前一项0次或多次,等价于{0,}(可有可无)

+ 匹配前一项1次或多次,等价于{1,} (至少有一个)

匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}(要么有要么只能出现一次)

正则表达式的应用

用户名、密码、电子邮箱、手机号码、身份证号码、生日、固定电话

 

 常见正则

用户名:/^[a-zA-Z0-9_-]{3,16}$/

 

密码:/^[a-z0-9_-]{6,18}$/

 

19**|200*|201*   01~09|1* 1~9|10~29|30|31      2012-09-12   0?[1-9]

1998-08-13

出生日期:/^((19\d{2})|(200\d)|(201[0-7]))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/

      

电子邮箱:/^([a-z0-9_\.-]+)@([\da-z-]+)\.((com)|(cn)|(com.cn))$/

          /^\w+@\w+\.((com)|(cn)|(com.cn))$/

            jk@yahoo.com.cn

匹配国内电话号码:(\d{3}-\d{8})|(\d{4}-\d{7})

评注:匹配形式如 0511-4405222 021-87888822

 

匹配身份证:\d{15}|\d{18}  

评注:中国大陆的身份证为15位或18位  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值