更换 - 用 - 用替换()
问题描述:
我一直在使用更换 - 用 - 用替换()
var str = "Artist - Song";
str = str.replace("-", "feat");
改变一些文本为 “ - ”。
最近,我注意到上述代码无法替代的另一个“ - ”。 这个“ - ”似乎比正常的“ - ”长一点。
有没有办法用较短的“ - ”取代较长的一个? 任何帮助表示赞赏。谢谢
编辑。
这是如何编写其余代码的。
var befComma = str.substr(0, str.indexOf('-'));
befComma.trim();
var afterhyp = str.substr(str.indexOf("-") + 1);
var changefeat = befComma.toUpperCase();
答
给这一个镜头:
var str = "Artist – Song";
str = str.replace("–", "-"); // Add in this function
str = str.replace("-", "feat");
这应该稍长替换 “ - ” 用更短的标准 “ - ”。
答
这个“ - ”看起来比正常的“ - ”要长一些。
有没有办法用较短的“ - ”取代较长的一个?
当然,你只是做同样的事情:
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");
这是正确的,最全面的答案。 – connexo
我试过使用上面的代码来代替更长的 - 用较短的一个。它没有解决。我想替换更长一个的原因是我有另一个运行代码将“ - ”中的单词分开。该代码扫描“ - ”,然后在“ - ”之前对单词进行“资本化”。但由于“ - ”没有被替换,代码停止工作。我编辑了这个问题以包含此代码。 –
@ Chordzone.org:不知道该告诉你什么,上述内容适用于你在问题中引用的字符:https://jsfiddle.net/g5rgnLu5/ –