这次给大家带来正则表达式小结(实战归纳),使用正则表达式实战的注意事项有哪些,下面就是实战案例,一起来看一下。
正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示:
1、元字符
[拥有特殊含义的元字符]
d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是D ->匹配一个除了0-9的任意字符
w -> 匹配一个0-9、a-z、A-Z、_的数字或字符,相当于[0-9a-zA-Z_]
s -> 匹配一个空白字符(空格、制表符…)
-> 匹配一个单词的边界
-> 匹配一个制表符
-> 匹配一个换行
. -> 匹配一个除了以外的任意字符
^ -> 以某一个元字符开头
$ -> 以某一个元字符结尾
-> 转移字符
x|y -> x或者y的一个
[xyz] -> x、y、z中的任意一个
[^xyz] -> 除了xyz中的任意一个字符
[a-z] -> 匹配a-z中的任意一个字符
[^a-z] -> 匹配除了a-z中的任意一个字符
() -> 正则中的分组
注意:
1)关于[]
a、[+] ->中括号中出现的所有字符都代表的是本身的意思
b、[12-65] ->这个不是12-65而是1/2-6/5三者中的一个
2)关于()
a、分组的作用是改变默认的优先级,例如:/^18|19$/,181、189、119、819、1819…都符合,而不是我们认为的18或19,但是改成/^(18|19)$/就是单纯的18或19了
b、可以在捕获大正则匹配的内容同时,把分组匹配的内容也进行捕获->分组捕获
c、分组引用,例如:/^(d)(w)$/,这里的是和第二个分组出现一模样的内容,是和第一个分组出现一模一样的内容,例如:”0aa0″就符合了
[代表数量的量词元字符]
* -> 0到多个
+ -> 1到多个
? -> 0到1个
{n} -> 出现n次
{n,} -> 出现n到多次
{n,m} -> 出现n到m次
注意:
1)关于?的几种情况
a、放在非量词元字符后面,代表出现0-1次
b、放在量词元字符后面,代表取消捕获时候的贪婪性,例如:reg=/d+/; reg.exec(“2015”) -> “2015” 但是如果正则这样写 reg=/d+?/; reg.exec(“2015”) -> “2”
c、在分组开头加?:,代表当前的分组只是匹配不进行捕获,例如:/^(?:d+)$/
d、在分组开头加?=,正向预查,例如:/^abcdef(?=1|2)$/ 只有”abcdef1″和”abcdef2″才符合
e、在分组开头加?!,负向预查,例如:/^abcdef(?!1|2)$/ 除了”abcdef1″和”abcdef2″不符合,其他的只要是”abcdef(任何的东西)”都符合
[代表本身意思的元字符]
除了以上的,在字面量方式中,我们出现的其他任意字符代表的都是自己本身的意思
var num=12;
var reg=/^w”+num+”$/; ->这里”+num+”不是把变量的值拼接,而这里的不管是”还是+都是元字符
->对于需要拼接字符串和变量的方式我们只能使用实例方式创建正则
2、修饰符
i -> ignoreCase 忽略字母的大小写
g -> global 全局匹配 (加上g可以解决正则捕获时候的懒惰性)
m -> multiline 多行匹配
3、项目中常用的正则
1)有效数字的
var reg=/^[+-]?(d|([1-9]d+))(.d+)?$/;
登录后复制
2)邮箱的
var reg = /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/;
登录后复制
3)电话的
var reg = /^1d{10}$/;
登录后复制
4)年龄在18-65之间的
var reg = /^((18|19)|([2-5]d)|(6[0-5]))$/;
登录后复制
5)中文姓名
var reg = /^[u4e00-u9fa5]{2,4}$/;
登录后复制
6)身份证
var reg = /^(d{6})(d{4})(d{2})(d{2})(?:d{2})(d)(?:d|X)$/; //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)
登录后复制
4、正则的匹配
reg.test([string]) ->true就是匹配成功 false->匹配不成功
5、正则的捕获
1)reg.exec([string])
-> 首先去匹配,匹配成功在捕获,返回的是一个数组; 如果匹配不成功返回的是null;
-> 正则的捕获即懒惰又贪婪
-> 解决懒惰性 在正则的末尾增加全局修饰符g
-> 解决贪婪性 在量词后面加?
相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!
推荐阅读:
正则的模式修饰符使用详解
在正则表达式中有哪些新增特性
以上就是正则表达式小结(实战归纳)的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2777639.html