2016-10-02 2 views
3

Я используюзаменить - с - с помощью замены()

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

изменить некоторые тексты "-".

В последнее время я заметил еще один «-», что приведенный выше код не может заменить. Это «-» кажется немного длиннее обычного «-».

Есть ли способ заменить более длинный на более короткий «-»? Любая помощь приветствуется. Thanks

EDIT.

Вот как написана остальная часть кода.

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

ответ

1

Дайте этому выстрел:

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

Это должно слегка больше заменить "-" с тем короче больше стандартного "-".

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"); 
+0

Это правильный и наиболее полный ответ. – connexo

+0

Я попытался использовать вышеприведенный код, чтобы заменить более длинный - более коротким. Это не сработало. Причина, по которой я хочу заменить более длинную, заключается в том, что у меня есть другой код, который отделяет слова от «-». Код сканирует «-», а затем «КАПИТАЛИЗИРОВАТЬ» слова перед «-». Но поскольку «-» не заменяется, код перестает работать. Я также отредактировал этот вопрос, чтобы включить этот код. –

+0

@ Chordzone.org: Не знаю, что вам сказать, приведенные выше работы для персонажей, которые вы указали в своем вопросе: https://jsfiddle.net/g5rgnLu5/ –

Смежные вопросы