在split(javascript)中包含分隔符

And*_* SK 3 javascript jquery split

这是一个textarea.用户可以写任何东西.

<textarea id="text">First sentence. Second sentence? Third sentence!
Fourth sentence.

Fifth sentence
</textarea>
Run Code Online (Sandbox Code Playgroud)

最后,我必须将所有文本拆分成一个数组.

var sentences = $('#text').val().split(/\r\n|\r|\n|[.|!|?]\s/gi);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,数组项值中不存在分隔符.这就是句子的回归:

["First sentence", "Second sentence", "Third sentence", "Fourth sentence", "Fifth sentence"]
Run Code Online (Sandbox Code Playgroud)

它应该是:

["First sentence.", "Second sentence?", "Third sentence!", "", "Fourth sentence.", "", "", "Fifth sentence"]
Run Code Online (Sandbox Code Playgroud)

额外考虑:

  • 最后一句不需要分隔符(它可以在任何字符处结束)
  • 如果一个句子有多个分隔符char,它也应该包含在数组项中.例:第二句话?? 应该是[......,"第二句话??",......]

有任何想法吗?任何方法都是受欢迎的(不一定是split()) - 谢谢!

Bla*_*ger 8

.match改为使用(docs).当您使用/.../g-type正则表达式时,它将返回所有匹配项的数组.您只需要先修改正则表达式:

var sentences = $('#text').val().match(/[^\r\n.!?]+(\r\n|\r|\n|[.!?])\s*/gi);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/kEHhA/3/