码迷,mamicode.com
首页 > 其他好文 > 详细

AS3中正则表达式对反斜杠的替换

时间:2015-03-13 14:05:14      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

一个有趣的小问题,下面的正则表达式能替换成功么?

var __str:String = \‘12346789\‘;
trace(__str.replace(/\\/g, \‘5\‘));

答案是:不能。trace出来的结果为:

[trace] 12346789

其实正则本身并没有写错,错在被替换的字符串。反斜杠“”在AS3中是转义符,会将其后的任何值转换为本身,因此看到的字符串其实本身就是12346789,也就是没有反斜杠,当然无法搜索到。

直接trace(__str),结果和上面的trace相同。

希望得到正确的结果,需要将字符串设置为:1234\\6789,我们看到的是两个反斜杠,而AS3认为它是一个反斜杠。

如果使用RegExp来建立正则,则需要使用4个反斜杠:

var __str:String = \‘1234\\6789\‘;
var __reg:RegExp = new RegExp(\‘\\\\\‘, \‘\‘);
trace(__str.replace(__reg, \‘5\‘));

这种情况只在硬编码字符串的时候出现,而如果字符串出现在TextField中,从TextField.text中取出的字符串,本身就自动进行了转义,看到的一个反斜杠,其实是两个反斜杠。

转自:http://zengrong.net/post/1374.htm

AS3中正则表达式对反斜杠的替换

标签:

原文地址:http://www.cnblogs.com/duhuo/p/4334941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!