替换 - 使用替换()

时间:2016-10-02 07:26:43

标签: javascript jquery replace

我一直在使用

var str = "Artist - Song";
str = str.replace("-", "feat");

将某些文字更改为“ - ”。

最近,我注意到上面的代码无法替换的另一个“ - ”。 这个“ - ”似乎比正常的“ - ”长一点。

有没有办法用较短的“ - ”替换较长的一个? 任何帮助表示赞赏。感谢

EDIT。

这是编写其余代码的方式。

  var befComma = str.substr(0, str.indexOf('-'));
    befComma.trim();
    var afterhyp = str.substr(str.indexOf("-") + 1);
   var changefeat =  befComma.toUpperCase();

2 个答案:

答案 0 :(得分:4)

  

这" - "似乎比正常情况要长一点" - "。

     

有没有办法用较短的" - "?

替换较长的一个

当然,你只是做同样的事情:

str = str.replace("–", "-");

请注意,在这两种情况下,您只会替换第一个匹配。如果您想要替换所有匹配项,请参阅this question's answers,它会指向带有g标记的正则表达式:

str = str.replace(/-/g, "feat");
str = str.replace(/–/g, "-");

我不太确定你为什么要用较短的一个替换较长的一个;您不想将两者替换为feat吗?

如果是这样,这将取代第一个:

str = str.replace(/[-–]/, "feat");

这取代了所有:

str = str.replace(/[-–]/g, "feat");

答案 1 :(得分:1)

试一试:

var str = "Artist – Song";
str = str.replace("–", "-"); // Add in this function
str = str.replace("-", "feat");

这应该用稍短的标准“ - ”替换稍长的“ - ”。