【发布时间】:2015-10-16 06:27:57
【问题描述】:
在过去的一周里,我一直遇到替换和 javascript 方面的问题。我正在用 Python 做各种各样的替换,到目前为止我从来没有遇到过这么多问题。请帮我? :P
这是我的代码中给我带来问题的部分:
function SaeReplacerMenuButton(buttonchosen){
var Texto = document.getElementById("wpTextbox1").value;
$("."+buttonchosen).each(function() {
var Reemplazo = this.value.split("=");
var PalabraAntigua = new RegExp(Reemplazo[0],'g'); /*Esto genera el regext*/
Texto = Texto.replace(" "+PalabraAntigua+" ", " "+Reemplazo[1]+" ");
Texto = Texto.replace(" "+PalabraAntigua+".", " "+Reemplazo[1]+".");
Texto = Texto.replace(" "+PalabraAntigua+",", " "+Reemplazo[1]+",");
}
);
document.getElementById("wpTextbox1").value = Texto;
}
应该:
- 从特定字段(实际上是具有特定类的文本区域)获取字符串。这些文本区域之一中的值例如:“miedo={{miedo}}”。
- 然后一分为二。
- 然后搜索空格“miedo”之间的第一个分割。
- 我找到任何匹配项,将其替换为第二次拆分 ( {{miedo}} )。
在那之后,我添加了一些代码来进行替换,如果也用 a 和 a 找到它。而不仅仅是空格,这就是问题开始的时候。当我运行脚本时,它会替换:
miedo miedo miedo miedo miedo miedo miedo miedo miedo miedo
与:
miedo {{miedo}} {{miedo}}.{{miedo}} {{miedo}}.{{miedo}} {{miedo}}.{{miedo}} {{miedo}}.{{miedo}} miedo
但是为什么?原始文本中没有任何点,所以应该替换它添加点的代码不应该做任何事情。
注意:我对 RegEx 一无所知,所以这是尝试使用 var + 空格而不是字符串进行全局替换。有没有“简单”的方法可以做到这一点?
我尝试在 jsfiddle 上复制它,如 http://prntscr.com/7wwns1 所示,但我无法让它工作,所以我决定上传脚本,以便你们测试它。
这是一个 .rar 文件,里面有一个 .js 和一个 .html:http://coznothingisforever.webs.com/replacerforstackoverflow.rar
【问题讨论】:
-
我尝试不使用 regext,但它只替换了一次所需的单词,可以在这里看到的问题:stackoverflow.com/questions/10136097/… 所以我尝试使用 RegExt,然后我确实迷路了:D
标签: javascript regex replace