正则表达式匹配整个字符串,但大小写不敏感

Regular expression to match whole string but case insentitive

本文关键字:大小写 字符串 正则表达式      更新时间:2023-09-26

我有一个循环的代码列表,对于每个代码,我需要在提交表单时检查是否完全但不区分大小写的匹配项。

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

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

执行
EXD
EXD1

如果提交ex则不应找到匹配项(但所有 3 个示例都匹配),如果仅提交exd EXD应匹配(但也匹配EXD1)。

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

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

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

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

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

如果您担心性能是否应该有大量代码要测试,您可以预先构造正则表达式,这样您就不必为每个验证都这样做。

您可以通过以下方式在没有正则表达式的情况下执行此操作:

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

使用单词边界:

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