You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中使用match()方法对动态变量进行不区分大小写匹配

解决方案

如果要在正则中使用动态变量,不能直接写正则字面量/test2/i,要使用RegExp构造函数生成正则实例:

const test1 = 'b'
const test2 = 'B'
// 第一个参数传入要匹配的变量值,第二个参数传入修饰符i实现不区分大小写
const matchRes = test1.match(new RegExp(test2, 'i'))
console.log(matchRes) // 匹配成功会返回对应结果数组,匹配失败返回null

注意事项

如果你的匹配字符串中包含.、*、+这类正则特殊字符,需要先对变量内容做转义处理,避免匹配结果不符合预期:

// 正则特殊字符转义工具函数
function escapeRegExp(str) {
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
}

// 使用示例
const test1 = 'a.b'
const test2 = 'A.B'
const reg = new RegExp(escapeRegExp(test2), 'i')
console.log(test1.match(reg)) // 正确匹配

更简单的相等比较方案

如果你的需求只是判断两个字符串是否不区分大小写相等,不需要正则的复杂匹配能力,直接把两个字符串转成同大小写再比较性能更高,也没有特殊字符的处理问题:

const isCaseInsensitiveEqual = test1.toLowerCase() === test2.toLowerCase()
console.log(isCaseInsensitiveEqual) // true

我尝试的操作如下图所示

内容的提问来源于stack exchange,提问作者codelover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:15:06