我一直在使用
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();
答案 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");
这应该用稍短的标准“ - ”替换稍长的“ - ”。