我试图创建一个通用模型来找到一个单词中特定字符序列的出现,我能够找到特定输入的出现..但我想概括这个表达式..这里只计算在单词里面出现“in”..我想概括正则表达式,以便它可以比较我提供的任何输入的出现,这可以使用javascript中的正则表达式完成吗?
我将添加一个示例小提琴http://jsfiddle.net/2BAFG/
答案 0 :(得分:1)
答案 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) });