Javascript替换精确匹配字符串

Javascript替换精确匹配字符串,javascript,Javascript,我有以下几点 removeStr(1); function removeStr(str1) { var string = '1,7,12,15,16,29'; var newstr = string.replace(str1, ''); alert('new val is ' + newstr); } 变量字符串='1,7,12,15,16,29' 如果我只想替换数字1,我将使用以下

我有以下几点

removeStr(1);

 function removeStr(str1)
        {  
            var string = '1,7,12,15,16,29';
            var newstr = string.replace(str1, '');
            alert('new val is ' + newstr);
        }
变量字符串='1,7,12,15,16,29'

如果我只想替换数字1,我将使用以下命令

removeStr(1);

 function removeStr(str1)
        {  
            var string = '1,7,12,15,16,29';
            var newstr = string.replace(str1, '');
            alert('new val is ' + newstr);
        }
但这样做,最终将删除12、15、16中的数字1

在本例中,如何删除完全匹配的1


谢谢

您正试图在字符串上执行此操作。 你可以考虑把它做成一个数组

var字符串='1,7,12,15,16,29';
var arr=string.split(“,”);
var newArr=arr.拼接(“1”);
string=newArr.join(“,”);
console.log(字符串)
您可以在regexp中使用边界(
\b
),以仅匹配整个单词。将测试字符串更改为适用于您的问题的字符串

功能删除器(str1)
{  
变量字符串='11,71,12,1,16,21';
var newstr=string.replace(新的RegExp(“\\b”+str1+“\\b”),”);
console.log('newval为'+newstr');
}
Removester(“1”)
函数替换一(str1、str2){
var arr=str2.split(“,”);
var newStr=“”;

for(var i=0;i“但是这样做,会删除12,15,16中的数字1。”-会吗?我很确定,在您发布的代码中,它只会删除第一个出现的
“1”
字符。您的代码生成的
新val是,7,12,15,16,29
替换
仅替换第一个匹配。请添加此代码如何帮助OP的解释。没有解释的代码对未来的访问者没有帮助。此外,请查看常见问题解答。这肯定有效,但不知道为什么?
\b
是单词bounda是吗?是的,
\b
是一个单词边界,但它匹配一个位置,而不是任何实际字符。匹配从
“\b1\b”
返回的示例字符串只是
“1”
12
15
16
不匹配,因为在
1
之前只有一个
\b
,而不是之后。这只适用于英语language@HouzayfaRifai这是正则表达式的一个限制。但是由于堆栈溢出的这个化身是,我不知道为什么你会期望有任何不同不过,这可能会对你有所帮助。