Javascript: разделить строку в соответствии с двумя критериями?

1

Я пытаюсь подсчитать количество предложений в абзаце. В параграфе все предложения заканчиваются либо ".", Либо ""! ".

Моя идея состоит в том, чтобы сначала разделить абзац на строки, когда есть "'." Или "!!", А затем подсчитать количество разделенных строк.

я пытался

.split('.' || '!')

но это не работает. Он только разбивает строки, когда есть ".".

Могу ли я знать, как с этим бороться?

  • 0
    взглянуть на регулярное выражение
  • 0
    '.' || '!' всегда будет давать '.' как '.' это истинная ценность. Кроме того, если вы уверены, что переданная строка будет содержать правильные предложения, вы можете просто посчитать количество . и ! узнать количество предложений.
Показать ещё 1 комментарий
Теги:
arrays

5 ответов

2

Просто используйте Regexp, это довольно просто;)

const example = 'Hello! You should probably use a regexp. Nice isn\'t it?';
console.log(example.split(/[.!]/));
0

Вы можете использовать regex /\.|!/ в split() как str.split(/\.|!/):

var str = 'some.string';
console.log(str.split(/\.|!/));

str = 'some.string!name';
console.log(str.split(/\.|!/));
0

Попробуйте под кодом, это даст вам точное количество предложений в абзаце.

function count(string,char) {
 var re = new RegExp(char,"gi");
 return string.match(re).length;
}


function myFunction() {

 var str = 'but that! does! not work. It only splits strings whenever there is a. ';
console.log(count(str,'[.?!]'));
}
0

Для этого вам нужно будет использовать регулярное выражение. Следующее должно работать:

.split(/\.|!/)
0

const sampleString = 'I am handsome. Are you sure?! Just kidding. Thank you.';
const result = sampleString.split(/\.|!/)
console.log(result);

// to remove elements that has no value you can do
const noEmptyElements = result.filter(str => str);
console.log(noEmptyElements);
  • 0
    Я заметил, что после слова «Спасибо» есть пустая строка. Могу я узнать почему? @sorxrob
  • 0
    Из-за пробелов после разделителей

Ещё вопросы

Сообщество Overcoder
Наверх
Меню