Мне нужно проверить все элементы массива (строки), если они соответствуют любому регулярному выражению, которое также хранится в массиве.Проверьте несколько строк для сопоставления нескольких регулярных выражений (оба массива)
Так вот строка-массив и массив и регулярное выражения (в данном примере все три элемента является таким же регулярным выражением - я знаю, что не делает Sence):
let array = [ 'just some', 'strings', 'which should be tested', 'by regex' ];
let regexes = [ /([^.]+)[.\s]*/g, /([^.]+)[.\s]*/g, /([^.]+)[.\s]*/g ];
Теперь я хотел бы сделать два _.each
-loops так:
_.each(array, function(element) {
_.each(regexes, function(regex) {
let match = regex.exec(element);
if (match && match.length)
doSomething(match);
});
});
Но то, что я хочу добиться того, что если только один регулярного выражения соответствия, я хочу, чтобы обработать эту строку. Таким образом, с помощью этого бессмысленного массива регулярных выражений это никогда не будет иметь места, так как не было бы или трех соответствующих регулярных выражений.
Кроме того, я хотел бы знать, если можно избежать этого вложенного цикла.
Обновление
Пример:
let array = [ '1. string', 'word', '123' ]
let regexes = [/([a-z]+)/, /([0-9]+)/]
array[0] should NOT pass the test, as both regex are matching
array[1] should pass the test, as just ONE regex is matching
array[2] should pass the test, as just ONE regex is matching
поэтому только результат для массива [1] и массив [2] следует использовать для дальнейшей обработки doSomething(match)
Нужно ли в 'вар = match'? Не могу ли я просто использовать 'regexes.some (r => r.exec (a))'? – user3142695
, только если вам нравится что-то делать с 'match'. –
'some' проверяет, прошел ли какой-либо из элементов массива тест, правильно? Таким образом, результат будет таким же, если одно регулярное выражение совпадает или несколько регулярных выражений соответствуют строке, верно? Но я хочу проверить, соответствует ли только одно регулярное выражение строке. Если несколько регулярных выражений совпадают, это также должно быть недействительным, так как нет соответствия. – user3142695