проверить количество вхождений 2 строк в строку js - PullRequest
0 голосов
/ 21 октября 2018

Я ищу количество вхождений двух разных паттернов в строку.Я ищу fly или flies.Я могу найти вхождение одного, но не знаю, как проверить наличие 2 разных строк.

Моя попытка на данный момент -

const flyCount = str => {
   return (str.match(/fly/g) || str.match(/flies/g) || []).length;
}

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Это можно сделать с помощью оператора регулярных выражений |.Вы также можете рассмотреть возможность добавления границы слова \b.

const flyCount = str => (str.match(/\b(?:fly|flies)\b/g) || []).length

console.log(flyCount('One fly, two flies'))
0 голосов
/ 21 октября 2018
  1. Объедините выражения регулярных выражений, чтобы найти оба слова.

Примечание: используйте \b (граница слова), чтобы найти точные слова.Если слова могут входить в состав других слов, удалите \b.

const flyCount = str =>
   (str.match(/\b(?:fly|flies)\b/g) || []).length;

const result = flyCount('Look how he flies. He can fly');

console.log(result);
Или получите длину каждого выражения и сложите их:

const flyCount = str =>
   (str.match(/\bfly\b/g) || []).length + (str.match(/\bflies\b/g) || []).length;

const result = flyCount('Look how he flies. He can fly');

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...