hidValue="javaScript:java";
replaceStr = "java";
resultStr=hidValue.replace("/\b"+replaceStr+"\b/gi","");


resultStr仍然包含“ javaScript:java”

上面的代码没有替换确切的字符串java。但是当我更改代码并直接传递值'java'时,它将被正确替换,即

hidValue="javaScript:java";
resultStr=hidValue.replace(/\bjava\b/gi,"");


resultStr包含“ javaScript:”

因此,我应该如何传递变量来替换函数,以便仅替换完全匹配的内容。

最佳答案

replace-function不会将字符串作为第一个参数,而是将RegExp-object作为对象。您可能不会将两者混为一谈。要使用组合字符串创建RexExp对象,请使用适当的构造函数:

resultStr=hidValue.replace(new RegExp("\\b"+replaceStr+"\\b","gi"),"");


请注意双反斜杠:您需要在正则表达式中使用反斜杠,但是反斜杠在字符串中也可以用作转义符,因此您必须将其加倍。

10-04 12:24