匹配单词中的字符序列

时间:2012-09-20 08:37:38

标签: javascript regex

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

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

4 个答案:

答案 0 :(得分:1)

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

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

DEMO

答案 1 :(得分: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/

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

答案 2 :(得分: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"可以是您喜欢的任何正则表达式字符串,包括动态生成的字符串。

答案 3 :(得分: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) });