Javascript break предложение словами
Обычно я мог легко решить эту проблему, но я не спал за 72 часа, что хорошая стратегия, чтобы получить полные слова в массив с последующим характером.
Пример.
Это удивительное предложение.
Array(
[0] => This
[1] => is
[2] => an
[3] => amazing
[4] => sentence.
)
Элементы 0 - 3 будут иметь следующее пространство, так как период удастся выполнить 4-й элемент.
Моя идея на словах сказать.
Эй, мне нужно, чтобы вы разделили их на расстояние,
Затем, когда ширина элемента с введенными элементами массива достигает X,
Перерыв в новую строку.
Пожалуйста, gawd не дают тонны кода. Я предпочитаю писать свои собственные, просто скажите мне, как вы это сделаете.
Ответы
Ответ 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.