vue 正则表达式
vue 校验匹配非法字符: /[@#\$%\^&\*\s+]+/g关键字中含有特殊字符:/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g\s表示空白字符。包括,空格,制表符等""只表示空格\s+可匹配至少一个空白字符[ ]+...
什么是正则表达式呢?
为了字符串模式匹配,从而实现搜索和替换功能。从命名可以了解到,它是一种用来描述规则的表达式。大家可以利用regexper.com这个工具很好地可视化自己写的正则表达式:
vue 校验
01、正则表达式(菜鸟教程)_bigdata_pokison的博客-CSDN博客_菜鸟教程 正则
https://vizztop.github.io/awesome-regex/dist/#/
元字符:
\d | 匹配数字 | |
\D | 非数字 | |
\w | 匹配字母或数字或下划线或汉字 | [0-9a-zA-Z_] |
\W | 匹配非英文数字下划线的任意字符 | [^0-9a-zA-Z_] |
\s | 匹配空格,tab等 | [\t\v\n\r\f] |
\S | 匹配非空格,tab等 | [^\t\v\n\r\f] |
. | 匹配除换行符以外的任意字符 | |
^ | 匹配字符串的开始 | |
$ | 匹配字符串的结束 | |
( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 和和。 | |
+ | 匹配前面的子表达式一次或多次。要匹配+字符,请使用\+ | |
| | 指明两项之间的一个选择。要匹配 |,请使用 \| | |
\b | 单词的边界,具体讲有三点规则。 ① \w和\W之间的位置 ② ^与\w之间的位置 ③ \w与$之间的位置 | |
\B | 非单词的边界,也就是\b反着来 ① \w与\w之间的位置 ② \W与\W之间的位置 ③^与\W之间的位置 ④\W与$之间的位置 | |
[] | 匹配括号内的任意字符 | |
[0-9] | 匹配数字,等价于\d | |
[A-Za-z] | 匹配英文字母 | |
[\u4e00-\u9fa5] | 匹配汉字 | |
[^] | 匹配除^号后字符以外的任意字符 | |
[^abc] | 匹配除了abc以外的任意字符 |
练习题:
匹配有abc开头的字符串:
\babc或者^abc
匹配8位数字的QQ号码
^\d\d\d\d\d\d\d\d$
匹配1开头11位数字的手机号码
^1\d\d\d\d\d\d\d\d\d\d$
xxx_love_study_1.mp4,想要把他变成❤️xxx_love_study_1❤️.❤️mp4❤️
怎么搞呢?
'xxx_love_study_1.mp4'.replace(/\b/g, '❤️') // ❤️xxx_love_study_1❤️.❤️mp4❤️
重复限定符
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
练习题:
匹配8位数字的QQ号码
^\d{8}$
匹配1开头11位数字的手机号
^1\d{10}$
匹配银行卡号14-18位的数字
^\d{14,18}$
匹配以a开头的,0个或多个b结尾的字符串
^ab*$
分组
从上面的例子(4)中看到,*限定符是作用与他左边最近的一个字符,现在的问题如果想要ab同时被*限定怎么办呢?
如果要匹配的字符串中本身就包含小括号,那是不是冲突?应该怎么办?
针对这种情况,正则提供了转义的方式,也就是要把这些元字符,限定符或者关键字转义成普通的字符,做法很简单,就是在要转义的字符前加“\”
如,要匹配(ab)开头
^(\(ab\))*
条件或(|)
查找联通的号码
^(130|131|132|155|156|185|186|145|176)\d{8}$
区间
通过上面的例子,是否还能简化呢
正则提供了一个元字符中括号[]来表示区间的条件
- 限定0到9,可以写成[0-9]
- 限定A-Z,可以写成[A-Z]
- 限定某些数字[165]
优化后
^((13[0-2])|(15[56])|(18[5-6])|145|176)\d{8}$
(?=abc) | 匹配abc前面的字符 |
(?<=abc) | 匹配abc后面的字符 |
(?<!abc) | 匹配前面不是abc的字符 |
(?!abc) | 匹配后面不是abc的字符 |
flag
g | 全部的,给我匹配全部的 |
i | 忽略大小写 |
m | 多行匹配 |
匹配非法字符: /[@#\$%\^&\*\s+]+/g
关键字中含有特殊字符:/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g
\s表示空白字符。包括,空格,制表符等
""只表示空格
\s+ 可匹配至少一个空白字符
[ ]+ 只表示多个空格
匹配中文: /[\u4e00-\u9fa5]+/g
匹配邮箱: /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
匹配电话号码,包括固定电话与手机号码: /(^0\d{2,3}-\d{7,8}(-\d{1,6})?$)|(^0?1[34578]\d{9}$)/
1- 999999999999的数字:/^[1-9]{1}\d{0,11}$/
1-100的数字:/^([1-9]{1,2}|100)$/
身份证号:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
8-20位字母,数字和特殊字符:/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,20}$/
6-20位字母和数字 :/^(?=.*\d)(?=.*[a-z])[a-zA-Z\d]{6,20}$/
14位,最多10位整数,4位小数:/^[1-9]\d{0,9}(\.\d{1,4})?$|^0(\.\d{1,4})?$/
营业执照号:/(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/
/^[0-9]*$/
手机号正则,座机号正则,400开头的正则
/(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[3578]\d{9})$)|(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))/
if
( reg.test(gets) ){
alert(
'匹配成功'
);
}
else
{
alert(
'匹配失败'
);
}
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+)*$/
这是匹配邮件的一个正则,我们一点点看。
正则表达式用法
/正则表达式特殊字符/修饰符(可选)
特殊字符
这里列一下正则的特殊字符及其用法,加深理解和映象。
* \ 将字符变为特殊或非特殊字符。如 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)