正则表达式匹配整个字符串但不区分大小写

时间:2015-03-13 13:57:50

标签: javascript regex

我有一个循环的代码列表,对于每个代码,我需要在提交表单时检查确切但 非区分大小写的 匹配

我使用正则表达式提出了一个解决方案,但它并不完美(它忽略了大小写,但会返回部分匹配)。

例如,从我的代码列表中获取此示例 -

  

EXC
  EXD
  EXD1

如果提交了ex,则不会找到匹配项(但所有3个示例都匹配),如果提交了exd,则只应匹配EXDEXD1也匹配)。

在下面的代码中val是来自表单的用户输入,而v.code是每个循环代码 -

if(v.code.search(new RegExp(val, "i")) >= 0){ ...

如何修改此代码以满足我的要求?感谢。

3 个答案:

答案 0 :(得分:4)

使用开始和结束锚点构建正则表达式:

if (new RegExp("^" + val + "$", "i").test(v.code)) {
  // match!
}

如果你担心性能应该有很多代码需要测试,你可以预先构建正则表达式,这样你就不必为每次验证做到这一点。

答案 1 :(得分:2)

你可以在没有正则表达式的情况下完成这项工作:

if (val.toLowerCase() == "insensitive string".toLowerCase())
{
    // ...
}

答案 2 :(得分:1)

使用字边界:

new RegExp('\\b'+val+'\\b', "i")