首页前端开发其他前端知识看到一个JS正则的题

看到一个JS正则的题

时间2024-02-01 12:23:02发布访客分类其他前端知识浏览429
导读:收集整理的这篇文章主要介绍了看到一个JS正则的题,觉得挺不错的,现在分享给大家,也给大家做个参考。 贴出来与大家共勉。 先看一段代码, <script> VAR objReg...
收集整理的这篇文章主要介绍了看到一个JS正则的题,觉得挺不错的,现在分享给大家,也给大家做个参考。 贴出来与大家共勉。

先看一段代码,
script>
VAR objReg = /^[a-zA-Z]{ 1} (:){ 1} $/gi;
alert(objReg.test("a:")); //返回true
alert(objReg.test("a:")); //返回false
/script>

为什么第二个test会返回false?是不是觉得奇怪。
原因我解答如下:
test实际上与exec方法的执行方法是一致的,只是返回值不一样。test返回的是true or false(如果exec返回的不是null),exec返回的是pattern(匹配)。
而exec的执行过程为:带有g参数时,下次匹配时,自动会跳到lastIndex后的位置,也就是这里的第2个位置。而这个位置与pattern显然不匹配。因此返回false。

解决方法:
(1)
可以不使用g(全局参数)也就是这样-
script>
var objReg = /^[a-zA-Z]{ 1} (:){ 1} $/i;
alert(objReg.test("a:")); //返回true
alert(objReg.test("a:")); //返回true
/script>

(2)
可以用lastIndex=0来还原-
var objReg = /^[a-zA-Z]{ 1} (:){ 1} $/gi;
alert(objReg.test("a:")); //返回true
objReg.lastIndex=0;
alert(objReg.test("a:")); //返回true

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: Javascript里的两种使用正则的方...下一篇:用JS让文章内容指定的关键字加亮猜你在找的正则表达式相关文章 去除内容中的html2022-04-16Python正则表达式保姆式教学详细教程2022-04-16十分钟上手正则表达式 上篇2022-04-16十分钟上手正则表达式 下篇2022-04-16深入浅出正则表达式中的边界\b和\B2022-04-16轻松入门正则表达式之非贪婪匹配篇详解2022-04-16轻松掌握正则表达式findall函数详解2022-04-16正则表达式用法详解2022-04-1636个正则表达式(开发效率提高80%)2022-04-16Python正则表达式指南 推荐2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 看到一个JS正则的题
本文地址: https://pptw.com/jishu/595395.html
正则表达式中的特殊字符 常用的匹配正则表达式和实例

游客 回复需填写必要信息