这个问题已经在这里有一个答案:
- 如何替换字符串中出现的所有的JavaScript 50个回答
我有多个逗号的字符串,字符串替换方法只会更改第一种:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
结果 : "thisnewcharis,a,test"
文档表示默认替换所有,而“1”也表明全部更换,但它是不成功的。 有什么想法吗?
这个问题已经在这里有一个答案:
我有多个逗号的字符串,字符串替换方法只会更改第一种:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
结果 : "thisnewcharis,a,test"
文档表示默认替换所有,而“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"
纯娱乐:
var mystring = "this,is,a,test"
var newchar = '|'
mystring = mystring.split(',').join(newchar);
var mystring = "this,is,a,test"
mystring.replace(/,/g, "newchar");
使用全球( g
)标志
简单的演示