正则表达式 y修饰符

2018-9-14 09:45| 作者: admin| 查看: 66| 评论: 0|来自: 蚂蚁部落

y修饰符规定正则表达式必须从lastIndex规定的位置开始进行匹配。

也就是说,如果开始匹配的位置不是从lastIndex规定位置开始,匹配失败,不再继续尝试。

上述的讲述或许还不能让您理解此修饰符的作用,不用担心,后面有详细代码实例演示。

关于lastIndex属性的基本用法参阅正则表达式 lastIndex属性一章节。

ES2015新增此修饰符。

语法结构:

[JavaScript] 纯文本查看 复制代码
new RegExp("regexp","y")

使用构造函数方式创建正则表达式对象。

[JavaScript] 纯文本查看 复制代码
/regexp/y

使用直接量方式创建。

更多创建正则表达式内容参阅JavaScript创建正则表达式一章节。

浏览器支持:

(1).IE9+浏览器支持此修饰符。

(2).edge浏览器支持此修饰符。

(3).火狐浏览器支持此修饰符。

(4).谷歌浏览器支持此修饰符。

(5).opera浏览器支持此修饰符。

(6).safria浏览器支持此修饰符。

实例代码:

[JavaScript] 纯文本查看 复制代码运行代码
let str = "anta";
let noY = /a/g;
console.log(noY.exec(str));
console.log(noY.exec(str));

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/14/094810ihxxx2bqib9m22fm.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).默认,lastIndex初始值为0。

(2).第一次执行exec方法匹配成功后,lastIndex属性值变为1。

(3).那么再一次执行exec方法的开始匹配位置就是1。

(4).从位置1处开始进行检索,直到位置3处匹配成功。

关于exec方法基本用法参阅正则表达式 exec()一章节。

[JavaScript] 纯文本查看 复制代码运行代码
let str = "anta";
let y = /a/y;
console.log(y.exec(str));
console.log(y.exec(str));

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/14/094853sfxzwxtssw7q3xny.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码将g修饰符修改为y修饰符。

代码分析如下:

(1).默认,lastIndex初始值为0。

(2).第一次执行exec方法匹配成功后,lastIndex属性值变为1。

(3).注意了,y修饰符的作用马上体现出来,正则必须在位置1处匹配成功,然而位置1处的字符是"n",匹配失败,那么整个匹配就终止了,而像前面的代码一样,继续进行检索。

最后总结:

从前面的代码演示可以看到,不采用y修饰符,那么正则在lastIndex指示位置处匹配失败以后,还有可能继续进行检索,但是y修饰符的关键点必须在lastIndex属性指示的位置匹配成功,否则将停止整个匹配过程。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部