2016-05-24 2 views
2

Я думаю, что эту проблему можно выполнить с помощью регулярного выражения. Но, к сожалению, я плохо разбираюсь в регулярном выражении. У меня есть предложение, теперь я хочу добавить «+» перед каждым словом.Добавить + infront каждого слова данного предложения в JavaScript

Пример: Input: У меня есть ручка
выход будет: + I + у + а + перо

я нашел некоторые решения, но они не решают мою проблему. Я попытался сделать это ниже. Но это дает мне такой вывод: I+have+a+pen+, но я хочу +I +have +a +pen

$('.addCharacter').click(function(event) { 
     var textareaInput=$('.textareaInput').val(); 
     var strToArr=textareaInput.split(' '); 
     var arrUniqueVal=arrUnique(strToArr); 

     $('.textareaInput').val(arrUniqueVal.join('+')); 
     console.log(arrUniqueVal); 
     //alert("ok"); 
    }); 

N.B: Я хочу, чтобы иметь возможность ввода нескольких предложений.

Update: Вход:

hello world one 
hello world two 
hello world three 

Выход:

+hello +world +one 
+hello +world +two 
+hello +world +three 
+3

Почему не ' "+" + sentence.split (" ") .join (" +")'? –

+1

попробуйте это var str = «У меня есть ручка»; str = str.replace (/ \ s +/g, '+') – navnit

+0

@navnit: Если вы измените это на 'str = str.replace (/ (^ | \ s +)/g," $ 1 + ");' , он сделал бы очень хороший ответ (а не комментарий). Гораздо лучше, чем мой ответ. Я предлагаю опубликовать его. –

ответ

2

Вы можете использовать это регулярное выражение: /(^|\s+)/g, который говорит, чтобы соответствовать либо начало строки (^) или (|) серии пробельных символов (\s+). () вокруг него делает его группой захвата. Затем вы используете replace с заменой строки "$1+": $1 означает «поместить содержимое группы захвата здесь» и + - буква буква +. g на регулярном выражении означает «глобальный» (например ,. на протяжении всей строки):

var str = "I have a pen"; 
 
str = str.replace(/(^|\s+)/g, "$1+"); 
 
console.log(str);

Преимущества использования \s (пробела) является то, что вам не придется беспокоиться о том, что такое «символ слова», поэтому он хорошо работает даже на языках, которые имеют разные «словарные символы», чем те, которые описаны на английском языке. Например, норвежский:

var str = "Jeg bor i Østlandet distriktet"; 
 
str = str.replace(/(^|\s+)/g, "$1+"); 
 
console.log(str);

+0

Это то, что я ищу. Ответ принят. –

-1
str = str.replace(/\b\w/g, "+"); 

Выше регулярное выражение будет соответствовать начало слова и добавить '+' к нему.

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