javascript用语言打破句子

THE*_*ING 33 javascript jquery

什么是一个很好的策略,可以将完整的单词带入具有后续特征的数组中.

例.这是一个惊人的句子.

Array(
[0] => This 
[1] => is
[2] => an
[3] => amazing
[4] => sentence.
)
Run Code Online (Sandbox Code Playgroud)

元素0 - 3将具有后续空格,因为句点接替第4个元素.

我在单词中的想法是说..嘿,我需要你通过间距字符来分割这些,然后一旦注入的数组元素的元素宽度达到X,就打破一个新的行.

请,gawd不要提供大量的代码.我更喜欢自己写,只要告诉我你会怎么做.

h2o*_*ooo 44

只需使用split:

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

如果你需要一个空间,你为什么不这样做呢?(之后使用循环)

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."]
Run Code Online (Sandbox Code Playgroud)

哦,睡个好觉!

  • @ cars10为什么你需要每个单词末尾的空格?如果你想要将它们连接起来,只需要`.join('');` (3认同)
  • @ user2716649正如Dennis Martinez所说,你可以简单地使用[`words.join("")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join )再次得到`这是一个惊人的句子. (2认同)

Isa*_*aac 35

Ravi的答案类似,使用match,但使用\b正则表达式中的单词边界来分割单词边界:

'This is  a test.  This is only a test.'.match(/\b(\w+)\b/g)
Run Code Online (Sandbox Code Playgroud)

产量

["This", "is", "a", "test", "This", "is", "only", "a", "test"]
Run Code Online (Sandbox Code Playgroud)

要么

'This is  a test.  This is only a test.'.match(/\b(\w+\W+)/g)
Run Code Online (Sandbox Code Playgroud)

产量

["This ", "is  ", "a ", "test.  ", "This ", "is ", "only ", "a ", "test."]
Run Code Online (Sandbox Code Playgroud)

  • 这确实是最好的答案,因为空间分割并不能真正用于现实场景.好吧,除非你不使用标点符号并且总是使用单个空格. (4认同)
  • 这将"不会"转换为"赢"和"赢".这允许收缩:str.match(/\b(\ w +)'?(\ w +)?\ b/g) (3认同)

car*_*10m 13

试试这个

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

这将

  1. §sep§在每个选定的分隔符后插入标记[ .,;]+
  2. 将字符串拆分到标记的位置,从而保留实际的分隔符.


Pen*_*Liu 8

使用splitfilter删除前导和尾随空格。

let str = '     This is an amazing sentence.  ',
  words = str.split(' ').filter(w => w !== '');

console.log(words);
Run Code Online (Sandbox Code Playgroud)


Rav*_*dra 6

如果你需要空格和最简单的点.

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

结果将是

['This ','is ','an ','amazing ','sentence.']
Run Code Online (Sandbox Code Playgroud)