This question already has answers here:
Replace method doesn't work
(4个答案)
5年前关闭。
通过使用Javascript,我想转换文本
至
我的代码如下:
但是,结果是
我想知道为什么?任何想法?
谢谢!
请注意,这将导致
如果不是在字符串的开头,这可以确保写回第一个空格字符。
或者,先使用
(4个答案)
5年前关闭。
通过使用Javascript,我想转换文本
" [a] b [c]"
至
"[a] b [c]"
我的代码如下:
var test = " [a] b [c]";
test.replace(/\s+\[/g, "[");
alert(test);
但是,结果是
"[a] b [c]"
我想知道为什么?任何想法?
谢谢!
最佳答案
字符串是不可变的。因此,replace
不会更改test
,而是返回更改后的字符串。因此,您需要分配结果:
test = test.replace(/\s+\[/g, "[");
请注意,这将导致
[a] b[c]
。要获得实际结果,您可能需要使用:test = test.replace(/(^|\s)\s*\[/g, "$1[");
如果不是在字符串的开头,这可以确保写回第一个空格字符。
或者,先使用
trim
并手动写回一个空格:test = test.trim().replace(/\s+\[/g, " [");