Это текстовое поле, где пользователь пишет текст. Я написал пример.Регулярное выражение, разделяющее длинный текст в отдельных предложениях с совпадением()
<textarea id="text">First sentence. Second sentence? Third sentence!
Fourth sentence.
Fifth sentence
</textarea>
требования уже были рассмотрены в регулярном выражении
- сепаратор входит в элемента массива
- последнее предложение не обязательно требует разделитель (это может закончиться с любым характером)
- Если предложение имеет более одного разделителя char, оно включено в элемент массива. Пример: второе предложение?!? должны быть [..., "второе предложение?!?" ...]
недостающее требование (мне нужна помощь с этим) < <
Каждая новая линия должна быть представлена пустой элемент массива. Если регулярное выражение применяется, то это должно быть ответом:
["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);
Любой идеи? Благодаря!
привет, спасибо! im тестируя его с несколькими сценариями, но он всегда возвращает ненужный пустой элемент массива в последней позиции массива. По какой-то причине он принимает \ t (tabs) как новые строки. – andufo
изменение '$' на '\ n' должно исправить. Я действительно не уверен, почему я решил использовать '$' в первую очередь – matt3141
работал, еще раз спасибо! – andufo