我试图在文本中找到该单词,如果它确实存在而不是替换它。但问题是我猜正则表达式,因为它看到的单词例如“%!hello!%”就像“你好”。而且它也没有在文本中找到这个词。有什么建议吗?
scriptPanel.setValue = function (oldValue,newValue) {
var re = new RegExp("\\b" + oldValue + "\\b","g");
var patt= sincapp.codeEditor.getValue().test(re);
if(patt){
var newText = sincapp.codeEditor.getValue().replace(re,oldValue);
sincapp.codeEditor.setValue(newText);
}
};
答案 0 :(得分:1)
您正在使用您用于查找它的相同变量替换它。此外,您在更换之前不需要进行测试,因为它只是多余的。
scriptPanel.setValue = function(oldValue, newValue) {
var re = new RegExp("\\b" + oldValue + "\\b", "g");
var newText = sincapp.codeEditor.getValue().replace(re, newValue); // new value!!!
sincapp.codeEditor.setValue(newText);
};
答案 1 :(得分:0)
使用这个:
var re = new RegExp("(?:^|\\s)" + oldValue + "(?:\\s|$)","g");
答案 2 :(得分:0)
这个例子对我有用;
RegExp("(^\|[ \n\r\t.,'\"\+!?-]+)(Čemšeniško)([ \n\r\t.,'\"\+!?-]+\|$)", "i")