0

我试图创建一个通用模型来查找单词中特定字符序列的出现,我能够找到特定输入的出现..但我想概括这个表达式..这里只计算“在”里面的话..我想概括正则表达式,以便它可以比较我提供的任何输入的出现,这可以在javascript中使用正则表达式来完成吗?

我将添加一个示例小提琴http://jsfiddle.net/2BAFG/

4

4 回答 4

1

您可以从字符串创建正则表达式:

var regex = new RegExp( $('#yourinput').val(), "i");

演示

于 2012-09-20T08:39:35.543 回答
0

尝试这个

var matches = function(m) {
    var re = new RegExp(m, "i");
    return data.filter(function(item) { return re.test(item) });
};

document.write(matches('in'));

小提琴示例:http: //jsfiddle.net/2BAFG/8/

现在要查找的子字符串作为函数的参数传递

于 2012-09-20T08:43:14.770 回答
0

new RegExp()当然,您可以使用并使用它从任意字符串构造正则表达式。

所以而不是:

var matches = data.filter(function(item) { return /in/i.test(item) });

您可以使用:

var re = new RegExp("in", "i");
var matches = data.filter(function(item) { return re.test(item) });

哪里"in"可以是您喜欢的任何正则表达式字符串,包括动态生成的字符串。

于 2012-09-20T08:43:58.310 回答
0

我相信是的,是的。

在你的小提琴中,你有

var matches = data.filter(function(item) { return /in/i.test(item) });

尝试将其更改为

var inputToMatch = "in";
var patt=new RegExp(inputToMatch,"i");
var matches = data.filter(function(item) { return patt.test(item) });
于 2012-09-20T08:45:00.143 回答