【问题标题】:Javascript Split, Replace acting strangeJavascript拆分,替换行为怪异
【发布时间】:2016-03-07 11:38:21
【问题描述】:

我正在尝试将字符串格式化为 word+word+word

例如

“超音乐节”变成“超+音乐+音乐节”

我尝试过使用以下代码

query.split(" ").join("+");

query.replace(" ", "+");

但是,两种方式都会给我

《超+音乐节》

是什么导致了这个问题,我该如何解决?

【问题讨论】:

  • 嗯,你确定你的测试用例是正确的吗?这似乎对我有用: var query = "ultra music festival"; var str = query.split(" ").join("+");控制台.log(str); //超+音乐+音乐节

标签: javascript string join replace split


【解决方案1】:

全局属性很重要。

例子!

var str = "Mr Blue has a blue house and a blue car"; 
var res = str.replace(/blue/g, "red");

在这种情况下:

query.replace(/ /g, "+");

【讨论】:

    【解决方案2】:

    第一个版本 (split/join) 应该按原样工作(如果第二个空格确实是空格)。

    要使用replace() 替换多个空格,您需要g 标志:

     query.replace(/ /g, "+");
    

    要连续替换多个空格(或制表符,或其他空格),您可以使用:

     query.replace(/\s+/g, "+");
    

    这样"one two three" 仍然会变成"one+two+three"

    【讨论】:

    • @RokoC.Buljan 好点;通常我会使用\s+/g,但我想在此处将所需的解释数量降至最低。
    • @RokoC.Buljan 在答案中添加了该用法的示例。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2014-04-22
    • 2015-08-27
    • 2016-03-19
    • 2014-01-11
    • 2011-05-16
    • 2011-12-28
    相关资源
    最近更新 更多