Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中字符串的精确替换_Javascript_String_Replace_Exact Match - Fatal编程技术网

Javascript中字符串的精确替换

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:” 那么,我应该如何传递一个变量来替换函数,以便只替换精确匹配的变量呢

resultStr仍然包含“javaScript:java”

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

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`