为何 '北京空气质量'.match(/(.*?)

2017-04-04  本文已影响13人  勿以浮沙筑高台

'北京空气质量'.match(/(.*?)空气/) 返回 ['北京空气'] 大部分人应该都知道,语句最后的下标 [1],可能会让不少人犯迷糊。
先来看看这条语句中涉及到的几个关键词:RegExp.*?(exp)match();

正则表达式 /(.*?)空气/ 表示以任意个任意字符开始以 空气 结束的字符段。
根据上面的解释,'北京空气质量'.match(/(.*?)空气/)中的 regexp 表达式没有标志 g,如果找到匹配的文本将返回一个数组,该数组的非第0个元素存储子表达式的文本。正则表达式 /(.*?)空气/ 的子表达式是 (.*?) 它匹配的文本是 北京 将作为返回数组的第1个元素,so'北京空气质量'.match(/(.*?)空气/)[1],等同于 ['北京空气', '北京'][1]

上一篇下一篇

猜你喜欢

热点阅读