将完整的单词及其后续字符放入数组中的好策略是什么?
例子。
这是一个惊人的句子。
Array(
[0] => This
[1] => is
[2] => an
[3] => amazing
[4] => sentence.
)
元素 0 - 3 将有一个后续空格,因为句点在第 4 个元素之后。
我需要你用间距字符分割这些,然后一旦注入数组元素的元素宽度达到X,就换行。
请不要给大量的代码。我更喜欢自己写,只是告诉我你会怎么做。
将完整的单词及其后续字符放入数组中的好策略是什么?
例子。
这是一个惊人的句子。
Array(
[0] => This
[1] => is
[2] => an
[3] => amazing
[4] => sentence.
)
元素 0 - 3 将有一个后续空格,因为句点在第 4 个元素之后。
我需要你用间距字符分割这些,然后一旦注入数组元素的元素宽度达到X,就换行。
请不要给大量的代码。我更喜欢自己写,只是告诉我你会怎么做。
只需使用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."]
哦,睡个好觉!
与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."]
试试这个
var words = str.replace(/([ .,;]+)/g,'$1§sep§').split('§sep§');
这会
§sep§
在每个选定的分隔符后插入一个标记[ .,;]+
如果你需要空格和点,最简单的就是。
"This is an amazing sentence.".match(/.*?[\.\s]+?/g);
结果将是
['This ','is ','an ','amazing ','sentence.']