学习Vue中那些正则表达式

正则用法

JavaScript中正则表达式用法为:

/正则表达式特殊字符/修饰符(可选)

特殊字符

这里列一下正则的特殊字符及其用法,加深理解和映象。 
* \ 将字符变为特殊或非特殊字符。如 n 变为换行符 \n,特殊符号 ( 变为字符 \(。 
* ^ 匹配字符串起始位置。 
* $ 匹配字符串结束位置。 
* * 匹配前面的子表达式零到多次。 
* + 匹配前面的子表达式一到多次。 
* ? 匹配前面的子表达式零到一次。 
* {n} 匹配前面的子表达式的n个,如 o{2} 能够匹配 food 不能匹配 god。 
* {n,} 至少匹配n个前面的子表达式,如 o{2,} 能够匹配 fooooood 不能匹配 god。 
* {n, m} 至少匹配n次,至多匹配m次。 
* 非贪婪模式 默认为贪婪模式,如 o+ 将匹配 foooood 的所有 o。而非贪婪模式(在匹配符后面加 ?),如 o+? 则只会匹配一个o 
* . 匹配除换行符外任何单个字符。换行符为 \n 和 \r。 
* (x) 捕获括号,匹配并记住匹配项。 
* (?:x) 非捕获括号,匹配并不记住匹配项。如 /(?:foo){1,2}/,这里将 foo 作为一个整体进行匹配1到2次。 
* x(?=y) 匹配x仅仅在x后面跟y的时候。?=y 表示字符串末尾是y。 
* x(?!y) 匹配x仅仅在x后面不跟着y的时候。?!y 表示字符串末尾不是y。 
* x|y 匹配 x 或 y,如 jack|rose 就可以匹配到 jack 和 rose 两个字符串。 
* [xyz] 匹配方括号内任意字符。 
* [^xyz] 反向字符集,匹配除方括号内字符的任意字符。 
* [0-9] 范围匹配,匹配0-9范围内任意字符。 
* \w 查找单词字符。单词字符包括:a-z、A-Z、0-9,以及下划线。 
* \W 查找非单词字符。 
* \d 查找数字字符。 
* \D 查找非数字字符。 
* \s 查找空白字符。空白字符包括空格、\n、\f、\r、\t、\v。 
* \S 查找非空白字符。 
* \b 匹配单词边界,通常匹配单词开头和结尾。如 /\bcd/ 匹配 cdkey。 
* \B 匹配非单词边界。如 /\Bcd/ 匹配 abcd。 
* \O 查找 NULL 字符。 
* \n 换行符。 
* \f 换页符。 
* \r 回车符。 
* \t 制表符。 
* \v 垂直制表符。

修饰符

  • i 执行对大小写不敏感的匹配。
  • g 执行全局匹配。
  • m 执行多行匹配。

简单正则实例分析

上面介绍了正则的简单用法,下面收集一些简单的正则进行分析。

/^[0-9]*$/

0-9范围内0到多个数字的组合,且字符开头结尾都是0-9的数字。即表示整数。如 1314、0

/^\d{m,n}$/

匹配m-n位的数字。由于开头结尾都是数字,所以它是一个固定长度的纯数字。

/^\-[1-9][0-9]*$/

 匹配-开头,数字结尾,第一个字符为1-9,随后0-n个字符为0-9的字符。即非零负整数。

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

这是匹配邮件的一个正则,我们一点点看。 
开头匹配1-n个单词字符; 
括号里匹配 [-+.] 字符加上1-n个单词字符,括号内容匹配0-n次; 
加上@字符; 
加上1-n个单词字符字符 
括号里匹配 [-.] 字符加上1-n个单词字符,括号内容匹配0-n次; 
加上.字符 
加上1-n个单词字符字符 
括号里匹配 [-.] 字符加上1-n个单词字符,括号内容匹配0-n次; 
结尾; 
这里考虑了很多因素邮箱命名因素,一般的邮箱地址像 475966597@qq.com 这种肯定是没问题的。所以,我极端测试来展现它列出的可能性,结果如下(我把所有可能性都符合了一遍): 

/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/

再来看个手机号验证。一步步来: 
开头匹配手机号前三位是 13[0-9] 或 14[5|7] 或者 15[0|1|2|3|5|6|7|8|9] 或 18[0|1|2|3|5|6|7|8|9]; 
匹配后八位数字为0-9的字符; 

/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/

这是验证身份证的正则,来看看: 
开头为一个1-9的数字; 
加上五位0-9的数字; 
加上一位1-9的数字; 
加上三位0-9的数字; 
加上 0/d 或者 1[0-2],即月份 01、02……12; 
加上 ([0|1|2]\d) 或者 3[0-1],即日起,01、13、25、31; 
加上身份证末四位;

/^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$/

这是xml文件命名正则。 
开头为 1-n个 [a-zA-Z] 字符 加上 0-1个 - 组成; 
括号内的内容可重复1-n次; 
加上1-n个 [a-zA-Z0-9] 字符; 
加上 ·.·; 
加上 x 或 X; 
加上 m 或 M; 
加上 l 或 L; 
结尾;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值