mik*_*ike 348 javascript string replace substitution
我有一个包含多个逗号的字符串,字符串替换方法只会更改第一个:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
Run Code Online (Sandbox Code Playgroud)
结果:"thisnewcharis,a,test"
文档指出默认值替换all,并且"-1"也表示替换all,但是不成功.有什么想法吗?
Vis*_*ioN 733
String.prototype.replace()函数的第三个参数从未被定义为标准,因此大多数浏览器根本不实现它.
gvar myStr = 'this,is,a,test';
var newStr = myStr.replace(/,/g, '-');
console.log( newStr ); // "this-is-a-test"Run Code Online (Sandbox Code Playgroud)
值得注意的是,正则表达式使用需要转义的特殊字符.例如,如果你需要转义一个dot(.)字符,你应该使用/\./literal,就像在regex语法中一个点匹配任何单个字符(行终止符除外).
var myStr = 'this.is.a.test';
var newStr = myStr.replace(/\./g, '-');
console.log( newStr ); // "this-is-a-test"Run Code Online (Sandbox Code Playgroud)
如果需要将变量作为替换字符串传递,而不是使用正则表达式文字,则可以创建RegExp对象并传递字符串作为构造函数的第一个参数.正常的字符串转义规则(\包含在字符串中的前面的特殊字符)将是必要的.
var myStr = 'this.is.a.test';
var reStr = '\\.';
var newStr = myStr.replace(new RegExp(reStr, 'g'), '-');
console.log( newStr ); // "this-is-a-test"Run Code Online (Sandbox Code Playgroud)
Rob*_*obG 159
纯娱乐:
var mystring = "this,is,a,test"
var newchar = '|'
mystring = mystring.split(',').join(newchar);
Run Code Online (Sandbox Code Playgroud)
gdo*_*ica 47
var mystring = "this,is,a,test"
mystring.replace(/,/g, "newchar");
Run Code Online (Sandbox Code Playgroud)
使用global(g)标志
| 归档时间: |
|
| 查看次数: |
672607 次 |
| 最近记录: |