我正在尝试
将'any string separated with blankspaces'
转换为
'any-string-separated-with-blankspaces'
我与.replace(' ','-')
绑在一起,但它只会取代第一个......为什么?我该如何替换所有?
答案 0 :(得分:5)
你需要一个正则表达式
.replace(/\s/g,'-')
\s
将取代任何类型的空白字符。如果您严格遵循“正常”空白使用
/ /g
代替。
答案 1 :(得分:1)
您需要使用正则表达式作为第一个参数,使用/g
修饰符使其替换所有匹配项:
var replaced = input.replace(/ /g,'-');
如果要替换任何空格字符而不是文字空格,则需要在正则表达式中使用\s
而不是;如果您想用一个连字符替换任意数量的连续空格,请在
+
或之后添加
\s
。
答案 2 :(得分:1)
在the MDN docs for String.replace
中没有特别清楚地说明,但String.replace
只替换一个,除非g
标志包含在其中,使用正则表达式而不是字符串:
要执行全局搜索和替换,请在正则表达式中包含
g
开关,或者如果第一个参数是字符串,请在flags参数中包含g
。
(但请注意flags
参数是非标准的,因为他们也会注意到这一点。)
因此,您需要tag.replace(/ /g,'-')
。
答案 3 :(得分:0)
将正则表达式与/g
修饰符
答案 4 :(得分:0)
在问题中使用/\s/g
取代' '