这是一个textarea,用户在其中写入一些文本。我已经写了一个例子。正则表达式将单独句子中的长文本拆分为match()
<textarea id="text">First sentence. Second sentence? Third sentence!
Fourth sentence.
Fifth sentence
</textarea>
在正则表达式已经考虑要求
- 分离器被包括在数组项
- 最后一句不一定需要分隔符(它可以与任何字符结尾)
- 如果一个句子有多个分隔字符,它将包含在数组项中。例如:第二句话?!?应该是[...... “第二句?!?”,...]
缺少需求(我需要这方面的帮助)< <
每个新行应表示为一个空的数组项。如果使用正则表达式,这应该是响应:
["First sentence.", "Second sentence?", "Third sentence!", "", "Fourth sentence.", "", "", "Fifth sentence"]
相反,我收到这样的:
["First sentence.", "Second sentence?", "Third sentence!", "Fourth sentence.", "Fifth sentence"]
这是正则表达式和匹配电话:
var tregex = /[^\r\n.!?]+(:?(:?\r\n|[\r\n]|[.!?])+|$)/gi;
var sentences = $('#text').val().match(tregex).map($.trim);
任何想法?谢谢!
嗨,谢谢!即时通讯测试它与几个场景,但它总是返回一个不必要的数组的最后一个位置的数组项。出于某种原因,它也需要\ t(制表符)作为新行。 – andufo
将'$'改为'\ n'应该修复它。我真的不知道为什么我选择使用'$'在第一个 – matt3141
工作,再次感谢! – andufo