Упор здесь делается на слово точно . Это должно работать для любого количества перестановок, так что, надеюсь, мой пример достаточно ясен.
Учитывая строку случайных букв, возможно ли (с использованием RegEx) сопоставить точное количество букв в данной строке?
Итак, если у меня есть строка (str1
), содержащая буквы ABZBABJDCDAZ
, и я хочу сопоставить буквы JDBBAA
(str2
), моя функция должна вернуть true
, поскольку str1
содержитвсе правильные буквы достаточно раз. Однако, если str1
изменить на ABAJDCDA
, функция вернет false
, поскольку str2
требует, чтобы str1
имел как минимум 2 экземпляров буквы B
.
Это то, что я до сих пор использовал в диапазоне:
const findLetters = (str1, str2) => {
const regex = new RegExp(`[${str2}]`, 'g')
const result = (str1.match(regex))
console.log(result)
}
findLetters('ABZBABJDCDAZ', 'JDBBAA')
Как видите, он соответствует правильным буквам, но соответствует всем их экземплярам. Есть ли способ сделать то, что я пытаюсь сделать с помощью RegEx? Причина, по которой я сосредотачиваюсь на RegEx, заключается в том, что мне нужно, чтобы этот код был высоко оптимизирован, и до сих пор другие мои функции, использующие Array.every()
и indexOf()
, просто слишком медленные.
Примечание: только моя функциятребуется вернуть значение true/false
.