RegExp 的 exec 方法

语法:
regexObj.exec(str)

作用是检测 str 中是否有匹配 regexOjb 的部分,返回值是一个数组。简单的例子:

var re = /\d/g
var str = 'a11a22a11a22'

re.exec(str) // 第1次执行

// Result:      ["1", index: 1, input: "a112211"]
// 索引0:       匹配的值
// 属性'index': 这个值所在位置

re.exec(str) // 第2次执行 (注意:re 如果没有加 g 标识的话,执行结果和第1次一样,不会向后匹配)

// Result:      ["1", index: 2, input: "a112211"]

如果 re 中有分组,则会把分组放入执行结果的 [1]...[n]

改变一下上例中的 re :

var re = /(a\d)(\d)/g // 两个分组:(a\d)、(\d)
var str = 'a11a22a11a22'

re.exec(str) // 第1次执行

// Result:      ["a11", "a1", "1", index: 0, input: "a11a22a11a22"]
// 索引0:       匹配的值
// 索引1:       匹配第1个分组的值
// 索引2:       匹配第2个分组的值
// 属性'index': 这个值所在位置

re.exec(str) // 第2次执行

// Result:      ["a22", "a2", "2", index: 3, input: "a11a22a11a22"]

利用exec() 会把匹配内容中分组的值分别得到的特性,我们可以很方便得从一段字符串中取得目标信息。如:

var re2 = /(\d{1,4}) (.*?) (\w{2} \d{4,5}),?/gi
var [_ , nb, addr, zip] = re2.exec("123 Main Street St. Louisville OH 43071")

// nb:   123
// addr: Main Street St. Louisville
// zip:  OH 43071
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值