Gop*_*opi 1 javascript string replace exact-match
hidValue="javaScript:java";
replaceStr = "java";
resultStr=hidValue.replace("/\b"+replaceStr+"\b/gi","");
Run Code Online (Sandbox Code Playgroud)
resultStr 仍然包含“javaScript:java”
上面的代码没有替换确切的字符串 java.lang. 但是当我更改代码并直接传递值“java”时,它会被正确替换,即
hidValue="javaScript:java";
resultStr=hidValue.replace(/\bjava\b/gi,"");
Run Code Online (Sandbox Code Playgroud)
resultStr 包含“javaScript:”
那么我应该如何传递一个变量来替换函数,以便只替换完全匹配的内容。
替换函数不采用字符串作为第一个参数,而是采用 RegExp 对象。你不能把这两者混为一谈。要从组合字符串创建 RexExp 对象,请使用适当的构造函数:
resultStr=hidValue.replace(new RegExp("\\b"+replaceStr+"\\b","gi"),"");
Run Code Online (Sandbox Code Playgroud)
请注意双反斜杠:您希望在正则表达式中使用反斜杠,但反斜杠也充当字符串中的转义字符,因此您必须将其加倍。