我有一个循环的代码列表,对于每个代码,我需要在提交表单时检查确切但 非区分大小写的 匹配
我使用正则表达式提出了一个解决方案,但它并不完美(它忽略了大小写,但会返回部分匹配)。
例如,从我的代码列表中获取此示例 -
EXC
EXD
EXD1
如果提交了ex
,则不会找到匹配项(但所有3个示例都匹配),如果提交了exd
,则只应匹配EXD
(EXD1
也匹配)。
在下面的代码中val
是来自表单的用户输入,而v.code
是每个循环代码 -
if(v.code.search(new RegExp(val, "i")) >= 0){ ...
如何修改此代码以满足我的要求?感谢。
答案 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")