0

如何检查变量中是否包含某些内容?我尝试检查是否.match()返回null,但这对于检查 OR 没有用?

4

6 回答 6

9

/cheese|cake/.test(a)

i如果你想不区分大小写地测试,你可以在正则表达式的末尾添加一个

于 2009-11-01T16:43:41.357 回答
5

由于您只得到涉及正则表达式的答案,因此这里是纯字符串操作解决方案:

var hasMatch = input.indexOf('cheese') != -1 || input.indexOf('cake') != -1;
于 2009-11-01T17:01:40.070 回答
2

试试这个:

var myString = 'I love cheese';
var isMatch = new RegExp(/(cheese|cake)/i).test(myString); //should return true
于 2009-11-01T16:43:24.960 回答
2

到目前为止发布的所有表达式也将匹配“cheeseburger”和“cakewalk”。不知道这是否可取,以防万一以下版本不可行:

alert(/\b(cheese|cake)\b/i.test("cheese and cake")) // true
alert(/\b(cheese|cake)\b/i.test("cheeseburger and pancake")) // false
于 2009-11-01T21:55:47.730 回答
0

你不只是想要以下吗?

var result = input.match("cheese") || input.match("cake");
于 2009-11-01T16:43:26.880 回答
-3
var matched = !!('cheese'.match(/(?:cheese|cake)/g));
alert(matched)

或 RegExp.prototype.test:

var matched = /cheese|cake/i.test('cheese cake');
alert(matched)
于 2009-11-01T16:46:12.943 回答