Regexp logic и
Я знаю, что существуют логические операторы, такие как |
"оператор OR", который можно использовать следующим образом:
earth|world
Мне было интересно, как я могу проверить, содержит ли моя строка Земля и мир.
С уважением,
александр
Ответы
Ответ 1
Если он содержит мир земли и мира, он содержит один за другим, поэтому:
earth.*world|world.*earth
более короткая альтернатива (с использованием расширенного синтаксиса regex):
/(?=.*earth)(?=.*world).*/
Но это совсем не так, как оператор and
. Вы можете сделать только or
, потому что, если включено только одно из слов, никакого заказа не требуется. Если вы хотите иметь их обоих, вам нужно указать порядок.
Ответ 2
выполните два теста, если первый сбой второй не выполняется в javascript. например.
var hasBoth = /earth/i.test(aString) && /world/i.test(aString);
Ответ 3
Этот вопрос задавали и отвечали здесь:
Регулярные выражения: есть ли оператор AND?
Не существует прямого оператора "и", но вы можете продолжить тестирование экспрессии и убедиться, что второе выражение также соответствует.