Подтвердить что ты не робот

Javascript break предложение словами

Обычно я мог легко решить эту проблему, но я не спал за 72 часа, что хорошая стратегия, чтобы получить полные слова в массив с последующим характером.

Пример. Это удивительное предложение.

Array(
[0] => This 
[1] => is
[2] => an
[3] => amazing
[4] => sentence.
)

Элементы 0 - 3 будут иметь следующее пространство, так как период удастся выполнить 4-й элемент.

Моя идея на словах сказать. Эй, мне нужно, чтобы вы разделили их на расстояние, Затем, когда ширина элемента с введенными элементами массива достигает X, Перерыв в новую строку.

Пожалуйста, gawd не дают тонны кода. Я предпочитаю писать свои собственные, просто скажите мне, как вы это сделаете.

4b9b3361

Ответ 1

Просто используйте split:

var str = "This is an amazing sentence.";
var words = str.split(" ");
console.log(words);
//["This", "is", "an", "amazing", "sentence."]

и если вам это нужно с пространством, почему бы вам просто не сделать это? (используйте цикл после этого)

var str = "This is an amazing sentence.";
var words = str.split(" ");
for (var i = 0; i < words.length - 1; i++) {
    words[i] += " ";
}
console.log(words);
//["This ", "is ", "an ", "amazing ", "sentence."]

О, и хорошо спать!

Ответ 2

Как и ответ Ravi, используйте match, но используйте границу слова \b в регулярном выражении для разделения на границах слов:

'This is  a test.  This is only a test.'.match(/\b(\w+)\b/g)

дает

["This", "is", "a", "test", "This", "is", "only", "a", "test"]

или

'This is  a test.  This is only a test.'.match(/\b(\w+\W+)/g)

дает

["This ", "is  ", "a ", "test.  ", "This ", "is ", "only ", "a ", "test."]

Ответ 3

попробуйте это

var words = str.replace(/([ .,;]+)/g,'$1§sep§').split('§sep§');

Это будет

  • вставить маркер §sep§ после каждого выбранного разделителя [ .,;]+
  • разделите строку на отмеченные позиции, тем самым сохранив фактические разделители.

Ответ 4

Если вам нужны пробелы и точка, то проще всего будет.

"This is an amazing sentence.".match(/.*?[\.\s]+?/g);

результатом будет Array (это, есть, an, amazing, предложение.)

Ответ 5

Вот вариант, если вы хотите включить пробел и завершить в O (N)

var str = "This is an amazing sentence.";
var words = [];
var buf = "";
for(var i = 0; i < str.length; i++) {
    buf += str[i];
    if(str[i] == " ") {
        words.push(buf);
        buf = "";
    }
}

if(buf.length > 0) {
    words.push(buf);
}

Ответ 6

Используйте функцию javascript split.