我正在尝试替换字符串中的子字符串。我下面的代码替换了所有出现的子字符串。例如。点击 后,它会替换中的。但我喜欢只更换点击的一个。我们怎么做到这一点?
我的房间>>
function correct(e:TextEvent):void{
str =String(e.currentTarget.htmlText);
if(e.text==replacements[e.currentTarget.name]){
e.currentTarget.htmlText =strReplace(str, e.text, corrections[e.currentTarget.name]);
}
}
function strReplace(str:String, search:String, replace:String):String {
return str.split(search).join(replace);
}
答案 0 :(得分:0)
您可以使用TextField.getCharIndexAtPoint(x:Number, y:Number):int
获取特定坐标中char的(从0开始)索引。
您显然需要将点击的点用作(x,y)。
您可以使用localX
活动中的localY
和TextField.click
。
此时,您需要在点击的字符附近搜索要替换的字符串。
例如,像这样:
stringToReplace = "in";
len = stringToReplace.Length;
neighborhood = TextField.substring(clickedCharIndex-len, clickedCharIndex+len);
if (neighborhood.indexOf(stringToReplace)) {
neighborhood = neighborhood.replace(stringToReplace, replacement);
TextField.text = TextField.text(0, clickedCharIndex-len) + neighborhood +
TextField.text(clickedCharIndex+len);
}