别惹 RegExp.$1 - $9

作者:vkvi 来源:千一网络(原创) 日期:2010-8-31

RegExp.$1 - $9 返回九个在模式匹配期间找到的、最近保存的部分。只读。它是很脆弱的,为什么呢,因为它是全局的。

所以在使用了 exec 后,要获取 RegExp.$1 - $9 的值时,不要在中间夹杂其他的有关正则表达式的,比如 string 的 replace。

var str = "111 222 333";
var reg = new RegExp("(.*)[ ]+(.*)[ ]+(.*)", "gi");
reg.exec(str);
alert(RegExp.$3); // 显示 333
 
var str2 = "aaa bbb";
alert(str2.replace(/[a]{1}/gi, "x")); // 显示 xxx bbb
alert(RegExp.$3); // 显示空白

可以看出,str2.replace 影响了 RegExp 的 $1- $9。当然,我们 str2.replace 那里的第一个参数如果不是正则表达式,而是字符串,就影响不了 RegExp.$1 - $9 了。

你前面那位网友看了:用 Android Studio 开发安卓 APP-调试篇

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他