Проверьте, есть ли в вар "сыр" или "пирог"? - PullRequest
0 голосов
/ 01 ноября 2009

Как я могу проверить, есть ли в переменной что-то? Я пытался проверить, вернул ли .match() null, но это бесполезно для проверки с помощью ИЛИ?

Ответы [ 6 ]

9 голосов
/ 01 ноября 2009

/cheese|cake/.test(a)

Вы можете добавить i в конце регулярного выражения, если хотите протестировать без учета регистра

5 голосов
/ 01 ноября 2009

Поскольку вы получили ответы только с регулярными выражениями, вот решение для работы с простой строкой:

var hasMatch = input.indexOf('cheese') != -1 || input.indexOf('cake') != -1;
2 голосов
/ 02 ноября 2009

все выражения, опубликованные до сих пор, также соответствуют "cheeseburger" и "cakewalk". Не знаю, является ли это желательным или нет, на всякий случай вот версия, которая этого не делает:

alert(/\b(cheese|cake)\b/i.test("cheese and cake")) // true
alert(/\b(cheese|cake)\b/i.test("cheeseburger and pancake")) // false
2 голосов
/ 01 ноября 2009

Попробуйте это:

var myString = 'I love cheese';
var isMatch = new RegExp(/(cheese|cake)/i).test(myString); //should return true
0 голосов
/ 01 ноября 2009
var matched = !!('cheese'.match(/(?:cheese|cake)/g));
alert(matched)

Или RegExp.prototype.test:

var matched = /cheese|cake/i.test('cheese cake');
alert(matched)
0 голосов
/ 01 ноября 2009

Разве вы не хотите просто следующее?

var result = input.match("cheese") || input.match("cake");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...