String ActionScript 3.replace()仅替换第一个实例
在FlashActionScript3中,我尝试做一些我认为很简单的事情:用另一个短语替换文本字符串中的所有短语实例。但是,由于某些原因,仅替换第一个实例,而忽略其余实例。我通过字符串替换函数运行了大约9次,将一个解决方案拼凑在一起,因此最终结果是所有的String ActionScript 3.replace()仅替换第一个实例,string,actionscript-3,String,Actionscript 3,在FlashActionScript3中,我尝试做一些我认为很简单的事情:用另一个短语替换文本字符串中的所有短语实例。但是,由于某些原因,仅替换第一个实例,而忽略其余实例。我通过字符串替换函数运行了大约9次,将一个解决方案拼凑在一起,因此最终结果是所有的都被替换了,但我想知道我做错了什么。提前谢谢 我的代码: var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Myco
都被替换了,但我想知道我做错了什么。提前谢谢
我的代码:
var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var postAddress = importPostAddress.replace("<br />",", ");
实际结果:
123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />
123假街,Mytown
Mycounty
Mycounty
PO5 7CD
为了解决这个问题,您需要做更多的工作
var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var pattern:RegExp = /<br \/>/g;
var postAddress = importPostAddress.replace(pattern,", ");
var importPostAddress=“123 Fake Street
Mytown
Mycounty
Mycountry
PO5 7CD
;
变量模式:RegExp=/
/g;
var postAddress=importPostAddress.replace(模式,“,”);
我正在使用一个
RegExp
来传递/g标志,这使得替换成为全局的(替换找到的表达式的所有实例)。我还必须使用反斜杠来转义
中的/
,因为它是正则表达式中的一个控制字符。Sam有一个很好的解决方案,另一个是:
postAddress = importPostAddress.split("<br />").join(",");
postAddress=importPostAddress.split(“
”).join(“,”;
你好,山姆,谢谢你的回复。您是否使用/
而不是引号来定义字符串??这是否有效地说:var模式:RegExp=“
”g代码>?或“
”/g
@CraigMcArthur您使用/
而不是引号来定义rexep
。这基本上是说替换模式(在这种情况下,模式没有特殊的正则表达式特征,所以它实际上是一个字符串)
全局替换。对我来说,这是唯一的解决方案,因为这是一个痛苦的。。。用RegExp替换未硬编码到代码中的所有字符串。可能我想要替换n
,可能反斜杠
,或者用户想要输入我需要从字符串中删除的随机字符。
postAddress = importPostAddress.split("<br />").join(",");