找到整个单词,如果它确实存在,那么替换它

时间:2015-03-03 15:34:35

标签: javascript regex

我试图在文本中找到该单词,如果它确实存在而不是替换它。但问题是我猜正则表达式,因为它看到的单词例如“%!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);
    }
};

3 个答案:

答案 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")