JavaScript的 - 替换字符串中的所有逗号[复制]JavaScript的 - 替换字符串中的

2019-05-14 04:36发布

这个问题已经在这里有一个答案:

  • 如何替换字符串中出现的所有的JavaScript 50个回答

我有多个逗号的字符串,字符串替换方法只会更改第一种:

var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)

结果"thisnewcharis,a,test"

文档表示默认替换所有,而“1”也表明全部更换,但它是不成功的。 有什么想法吗?

Answer 1:

第三个参数String.prototype.replace()函数从未定义为标准,所以大多数的浏览器根本就没有实现它。

最好的办法是使用正则表达式与g全局 )标志。

 var myStr = 'this,is,a,test'; var newStr = myStr.replace(/,/g, '-'); console.log( newStr ); // "this-is-a-test" 

还有问题?

要注意,正则表达式使用是很重要的是需要转义特殊字符 。 举个例子,如果你需要逃脱点( . )字符,你应该使用/\./文字,如正则表达式的语法点匹配任何单个字符(除行终止)。

 var myStr = 'this.is.a.test'; var newStr = myStr.replace(/\./g, '-'); console.log( newStr ); // "this-is-a-test" 

如果你需要通过一个变量作为替换字符串,而不是使用正则表达式字面可以创建RegExp对象,并传递一个字符串作为构造函数的第一个参数 。 正常字符串转义规则(前述有特殊字符\包含在一个字符串时)将是必要的。

 var myStr = 'this.is.a.test'; var reStr = '\\.'; var newStr = myStr.replace(new RegExp(reStr, 'g'), '-'); console.log( newStr ); // "this-is-a-test" 



Answer 2:

纯娱乐:

var mystring = "this,is,a,test"  
var newchar = '|'
mystring = mystring.split(',').join(newchar);


Answer 3:

var mystring = "this,is,a,test"
mystring.replace(/,/g, "newchar");

使用全球( g )标志

简单的演示



文章来源: JavaScript - Replace all commas in a string [duplicate]