js小白之路(八)——正则表达式

正则表达式:RegEnts。专门验证字符串中字符出现的规则的定义规则,若不符合规则,提示错误。写在//中

/[备选字符]/

/[1,2,3]/ 表示输入1、2、3都对,一个[]只能代表一位字符的匹配规则,几位数就有几个[]。

例如手机号的匹配:

var reg=/[1][3456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]/

显而易见,这种形式的正则表达式实在是太麻烦了,进一步简化:正则表达式对任何连续的区间都可以用横线连接。

var reg=/[1][3-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/

对于后9位数字,是重复的,有没有规则做到相同的规则只需要写一次?那必然是有的:数量词写在{}中表示前一位规则重复多少次

var reg=/[1][3-9][0-9]{9}/

若想修饰多位规则,可以加小括号:

var reg=/[1]([3-9][0-9]){9}/;   此时表示的是19位数的正则表达式

{}表示规则重复次数的完整说明:{num},重复num次;{min,},至少重复min次;{min,max},至少重复min次,至多重复max次。

特殊数量词

1. ? 代表前面一位规则可有可无,最多一次

2. *   代表前一位规则可有可无,不限次数,相当于{0,}

3. +  代表前一位至少出现一次,相当于{1,}

预定义字符集:

\d:代表所有数字,相当于[0-9];

\w:所有数字、字母、下划线,范围比\d更广;

\s:空格;

· (圆点):任意字符;

[]里若只有1位备选字符或只有一个预定义字符集,[]可以省略;

注意对于在正则表达式里有特殊含义的字符要想作为普通字符用,要用反斜线“\”转义。

综上,最终简化的手机号正则表达式为:

var reg=/1[3-9]\d{9}/

字符串的检验方法:test(),用来检验字符串格式是否正确,返回boolean值

reg.test("被检验的数据")

var reg=/1[3-9]\d{9}/

var num="18932785677";

if(reg.test(num)){

      alert("成功!")

}else{

      alert("手机号格式有误")

}

注意!test方法默认部分匹配,即找一段连续的能匹配的,前后是否多内容无影响,所以直接用test匹配可能会出现形式错误但匹配成功的情况。解决:在整个正则表达式的开头加^代表以……开头,在整个表达式的结尾加$,代表以……结尾

var reg=/^1[3-9]\d{9}$/

再写一个邮箱的正则表达式:

/^\w+@\w([-]\w+)*(\.\w+)+$/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值