javascript正则表达式小结

总结了一下javascript正则表达式的内容。表格形式,一目了然。辅以Example图形解释。

一、元字符

clipboard.png

二、反义字符

clipboard.png

三、转义字符

clipboard.png

四、重复匹配

clipboard.png

五、分组/捕获

clipboard.png

六、贪婪与惰性

clipboard.png

七、修饰符

clipboard.png

example

  • 匹配开头为11N, 12N或1NNN,后面是-7-8个数字的电话号码。

clipboard.png

推荐一个图形化表示正则的工具
https://regexper.com

将上个例子翻译为图形化表示如下:

clipboard.png

  • 解释一下这个正则的意思

/(?:([^:;\(\[]*):)?(.*)/

首先 (?:...)?(.*) 看最外边的两个括号,第一个是非捕获型括号,? 号作用于这个括号。第二个括号是捕获型的,并且匹配多个任意字符。

然后,([^:;([]*): 这是一个捕获型括号和一个字符 : 号

[^:;([]* 捕获型括号中又包含一个字符组([]) 与一个 * 号,字符组中匹配多个除了 ; ( [ 的字符

clipboard.png

再来一个

/(^\s*)|(\s*$)/g

clipboard.png

  • 用js实现一个电话号码提取的方法。

例如:” 1852145998 020-888-999845 测试 021 – 85421987, 19865754″得到的结果应该是[1852145998, 020-888-999845 , 021 – 85421987, 19865754]

var str=" 1852145998 020-888-999845 测试 021  -  85421987, 19865754";
var reg=/(1\d+)|(0[0-9\s\-]+)/g;
console.log(str.match(reg));

clipboard.png

正则方法:

.test(字符串):返回一个布尔值,表示传入的字符串是否匹配该正则(从lastIndex属性指示的地方开始)

.exec(字符串):返回一个包含了匹配结果的数组(额外具有两个属性:input表示本次搜索的目标字符串,即传入exec方法的参数;index表示匹配结果在目标字符串内的位置)或null(匹配不到)。即使正则添加了g选项,也要通过多次调用同一正则对象的该方法来继续搜索(每次搜索会从lastIndex属性指示的地方继续。若已完成搜索,则lastIndex会被自动置0)。若未添加g选项,则调用几次都是一样的结果。若未找到匹配项则返回null,且将正则对象的lastIndex自动置为0

字符串对象的有关方法:

字符串.match()
字符串.search()
字符串.split()
字符串.replace()

更多可以参考高设Regexp一章。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值