我需要使用regx过滤掉给定行中的一些指定字符串。 使用string.macth()可以很容易地实现这一点。但我的要求有点棘手。
我有一组关键字,需要在给定的字符串中标识。 (我的输入字符串只包含一个预期的关键字)。我必须形成regX字符串,这将在我的输入字符串中找到可用的关键字。
示例输入和输出
var InString ="one_sam_get_2384823_34534";
var keyList = "one|two|three|four|five";
这里我的预期结果是一个
或
var InString ="odfdfg_three_get_2384823_34534";
var keyList = "one|two|three|four|five";
这里我的预期结果是三
之前我使用类似“/ ^ one / i”的内容来查找单个关键字出现。
但我对这种多关键词方法感到震惊。我赞赏任何指导。
答案 0 :(得分:3)
您可以使用keyList
创建一个RegExp对象:
InString.match(new RegExp(keyList, "i"))
答案 1 :(得分:1)
修改强>
function findKey (input, keyList) {
var result = input.match(new RegExp(keyList));
if (result) {
return result[0];
}
}
答案 2 :(得分:0)
使用var regex = /(one | two | 3)/的形式的正则表达式;
答案 3 :(得分:0)
为什么不使用像
这样的正则表达式“的 /(一个| 2 | 3 | 4 | 5)/ I 强>”
干杯