Javascript正则表达式--语法篇

使用正则的过程中可能对Js正则的语法记得不太牢,顺便也整理了一下,列在这里。

正则对象

(1)构造函数方式

var reg = new RegExp('abc', 'gi');

第一个参数是正则的内容,第二个参数是修饰符,修饰符通常有三种,i,g,m,i表示的含义是忽略大小写进行匹配,g表示全局匹配即匹配到第一个之后不停止继续匹配,m表示多行匹配,更改^和$的含义,匹配任意一行的行首和行尾。

(2)字面量方式

var reg = /abc/gi;

两个斜杠之间的是定义的正则内容,最后一个斜杠之后的是修饰符,这种方式比第一种简单高效,所以通常使用第二种方式来定义正则。

(3)方法

方法名语法描述
testRegExpObject.test(string)检测字符串是否与正则匹配
execRegExpObject.exec(string)检索字符串中的正则表达式的匹配
compileRegExpObject.compile(regexp,modifier)对正则表达式进行编译

(4) 支持正则表达式的String对象的方法

方法名语法描述
searchstr.search(regexp)检索与正则表达式相匹配的值
matchstr.match(regexp)找到一个或多个正则表达式的匹配
replacestr.replace(regexp,replacement)替换与正则表达式匹配的子串
splitstr.split(regexp, howmany)把字符串分割为字符串数组

正则的字符

一、元字符

元字符对应说明
.匹配除换行符之外的任意字符
\w匹配字母数字下划线,等同于:[a-zA-Z0-9]
\s匹配任意空白字符
\d匹配数字,等同于[0-9]
\b匹配单词边界
|或匹配,如 /x|y/ 匹配x或y两个字符
^匹配字符串的开始
$匹配字符串的结束

二、重复匹配

匹配字符对应说明
*重复出现零次或多次
+重复出现一次或多次
?重复出现零次或一次
{n}重复出现n次
{n,}至少重复出现n次
{m,n}重复重现m到n次,其中,m

三、修饰符

修饰符对应说明
iignoreCase的缩写,表示忽略字母的大小写
gglobal的缩写,表示全局匹配
mmultiline的缩写, 更改^和$的含义,匹配任意一行的行首和行尾

四、反义字符

反义字符对应说明
[^x]匹配除x之外的所有字符, 其中x可以为任意字符
[^xyz]同上,匹配除xyz之外的任意字符
\W匹配除了字母、数字、下划线之外的任意字符,等同于: [^\w]
\S匹配除了空白符之外的任意字符,等同于:[^\s]
\D匹配不是数字的所有字符,等同于:[^\d]
\B匹配不是单词边界的字符,等同于: [^\b]

五、转义字符

转义字符对应说明
\xnn匹配十六进制数
\f匹配换页符,等同于: \x0c
\n匹配换行符,等同于: \x0a
\r匹配回车符,等同于:\x0d
\t匹配水平制表符,等同于:\x09
\v匹配垂直制表符,等同于:\x0b
\unnnn匹配Unicode字符,如:\u00A0

六、分组/捕获

分组字符对应说明
(exp)用小圆括号进行分组
(?:exp)匹配exp正则,但不产生分组号
exp1(?=exp2)前瞻断言,匹配exp1,但后面必须是exp2
exp1(?!=exp2)后瞻断言,匹配exp1,但后面不能是exp2

七、贪婪与惰性

匹配字符对应说明
*?重复出现零次或多次,但尽可能少的重复
+?重复出现一次或多次,但尽可能少的重复
??重复出现零次或一次,但尽可能少的重复
{n}?重复出现n次,但尽可能少的重复
{n,}?至少重复出现n次,但尽可能少的重复
{m,n}?重复重现m到n次,其中,m

八、常用正则表达式

描述正则
电话号码/[0-9-()()]{7,18}/
邮编/^[1-9]\d{5}(?!\d)$/
中文字符/[\u4e00-\u9fa5]/g
Email地址/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}/
手机号码/0?(13|14|15|17|18|19)[0-9]{9}/
身份证号/\d{17}[\d|x]|\d{15}/

九、在线工具

参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值