正则表达

var regex = /ab{2,5}c/g

{2,5}表示重复2-5个都符合  /g全部匹配

/a[1,2]c/g

[1,2]表示有其中一个符合

修饰符
/g  全局
/i  忽略大小写
/s  配合.可以匹配任意单个字符
/u  有一些Unicode字符超过一个字节,正则就无法正确的识别它们。u修饰符就是用来处理这些不常见的情况的。

[1,2,3,4]可以用范围字符-表示[1-4]

[^abc] 字符组第一位放^,表示反义,不能有abc其中一个 排除

元字符含义
\b 匹配一个单词边界(boundary)
\B  匹配一个非单词边界
\d  匹配一个数字字符(digit)
\D  匹配一个非数字字符
\s  匹配一个空白字符(space)
\S  匹配一个非空白字符
\w   匹配一个字母或者一个数字或者一个下划线(word)
\W   匹配一个字母、数字和下划线之外的字符
量词	含义
?	重复零次或者一次
+	重复一次或者多次,也就是至少一次
*	重复零次或者多次,也就是任意次数
{n}	重复n次
{n,}	重复n次或者更多次
{n,m}	重复n次到m次之间的次数,包含n次和m次

\d = [0-9]      \D = [^0-9]   \w = [0-9a-zA-Z_](表示数字大写字母下划线)  \W=非单词字符  \S非空白符   \s空白符  

 .表示 \n之外的任意字符 

1零宽肯定先行断言

'CoffeeScript JavaScript javascript'.match(/\b\w{4}(?=Script\b)/);
// ["Java"]
这四个字母要满足以下条件:紧跟着的应该是Script字符串,而且Script字符串应该是单词的结尾部分。

2零宽肯定后行断言

语法是圆括号内最左边加上?<=标识。
'演员高圆圆 将军霍去病 演员霍思燕'.match(/(?<=演员)霍\S+/);
// ["霍思燕"]

3.零宽否定先行断言

语法是圆括号内最左边加上?!标识。
'TypeScript Perl JavaScript'.match(/\b\w{4}(?!Script\b)/);
// ["Perl"]

4.零宽否定后行断言

法是圆括号最左边加上?<!标识。
'演员高圆圆 将军霍去病 演员霍思燕'.match(/(?<!演员)霍\S+/);
// ["霍去病"]
'<App>hello regex</App>'.match(/<([a-zA-Z]+)>.*<\/\1>/)
这时候就要用到正则的捕获特性。正则内捕获使用\数字的形式,分别对应前面的圆括号捕获的内容。这种捕获的引用也叫反向引用。
'我喜欢高圆圆'.match(/我喜欢(?:陈乔恩|高圆圆)/);
只要在圆括号内最前面加上?:标识,就是告诉正则引擎:我只要这个整体

2.分支结构 

   | 表示其中之一 (是懒性的)

3. 贪婪匹配和懒性匹配

/\d{2,5}/g   数字2-5位都可以   (贪婪匹配)

/\d{2,5}?/g   数字最少的可以,2个够了就不继续找了   (懒性匹配)

4 对电话号位数进行3,4,4加空格   $1表示括号内第一个匹配的内容

phoneNumber.replace(/(^\d{3}|\d{4}\B)/g, '$1 '));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值