0

我试图在句子中找到用于正则表达式匹配的模式。在下面的代码中result包含一个字符串,我们正在检查该单词apple是否存在于其中。

    var patt = /apple/gi;
    var newResult = patt.test(result);

我从一个用例中找到了上面的代码。但我想知道我是否有多个值并且我想在字符串结果中检查它,假设一个带有值的数组var arr=["apple", "orange"] var patt=/arr[0]/gi 将不起作用.. 可能是什么方式那个场景??

4

2 回答 2

2

要检查多个条目,您可以使用 OR 运算符:

var patt = /apple|orange/gi;
var newResult = patt.test(result);

如果您有一个变量,您可以执行以下操作,如果(!)您的密钥当然是正则表达式安全的(也就是说,它不包含在正则表达式语法中有意义的字符):

var key = "apple";
var patt = new RegExp(key, 'gi');
var newResult = patt.test(result);

尽管在这种情况下,您不妨使用 indexOf:

var key = "apple";
var newResult = result.indexOf(key) > -1;
于 2013-03-08T09:53:37.287 回答
0

要将字符串用于正则表达式,您需要使用正则表达式构造函数创建正则表达式。

var pattern = "apple|orange";
var regex = new RegExp(pattern, "g");    // g is for global match

在此处阅读更多信息:https ://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

于 2013-03-08T09:59:42.560 回答