Javascript中字符串的精确替换
resultStr仍然包含“javaScript:java” 上面的代码并没有完全替换java字符串。但是,当我更改代码并直接传递值“java”时,它会被正确替换,即Javascript中字符串的精确替换,javascript,string,replace,exact-match,Javascript,String,Replace,Exact Match,resultStr仍然包含“javaScript:java” 上面的代码并没有完全替换java字符串。但是,当我更改代码并直接传递值“java”时,它会被正确替换,即 hidValue="javaScript:java"; replaceStr = "java"; resultStr=hidValue.replace("/\b"+replaceStr+"\b/gi",""); resultStr包含“javaScript:” 那么,我应该如何传递一个变量来替换函数,以便只替换精确匹配的变量呢
hidValue="javaScript:java";
replaceStr = "java";
resultStr=hidValue.replace("/\b"+replaceStr+"\b/gi","");
resultStr包含“javaScript:”
那么,我应该如何传递一个变量来替换函数,以便只替换精确匹配的变量呢 注意,在一种情况下,您传递的是正则表达式文本
/\bjava\b/gi
,而在另一种情况下,您传递的是字符串“/\bjava\b/gi”
。使用字符串作为模式时,string.replace
将查找该字符串,它不会将模式视为正则表达式
如果需要使用变量生成正则表达式,请按如下方式执行:
hidValue="javaScript:java";
resultStr=hidValue.replace(/\bjava\b/gi,"");
见:
请注意,在一种情况下,您传递的是正则表达式文本
/\bjava\b/gi
,而在另一种情况下,您传递的是字符串“/\bjava\b/gi”
。使用字符串作为模式时,string.replace
将查找该字符串,它不会将模式视为正则表达式
如果需要使用变量生成正则表达式,请按如下方式执行:
hidValue="javaScript:java";
resultStr=hidValue.replace(/\bjava\b/gi,"");
见:
替换函数不是将字符串作为第一个参数,而是将RegExp对象作为第一个参数。你不能把这两个混为一谈。要使用组合字符串创建RexExp对象,请使用适当的构造函数:
new RegExp("\\b" + replaceStr + "\\b", "gi")
请注意双反斜杠:您希望在正则表达式中使用反斜杠,但反斜杠也可以用作字符串中的转义字符,因此必须将其加倍。替换函数不使用字符串作为第一个参数,而是使用RegExp对象。你不能把这两个混为一谈。要使用组合字符串创建RexExp对象,请使用适当的构造函数:
new RegExp("\\b" + replaceStr + "\\b", "gi")
请注意双反斜杠:您希望在正则表达式中使用反斜杠,但反斜杠也可以用作字符串中的转义字符,因此必须将其加倍。`let msisdn='5093240556699' 设isdnWith=numb.msisdn.slice(8,11); 让msisdnew=msisdn.replace(isdnw为'XXX','gi')
显示5093240556XXX``let msisdn='5093240556699' 设isdnWith=numb.msisdn.slice(8,11); 让msisdnew=msisdn.replace(isdnw为'XXX','gi') 显示5093240556XXX`