JavaScript 中不区分大小写的正则表达式

我想使用 JavaScript 从 URL 中提取一个查询字符串,并且我想对查询字符串名称进行不区分大小写的比较。这就是我正在做的:

var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return 0; }
return results[1] || 0;

但是上面的代码执行区分大小写的搜索。我尝试了 /<regex>/i,但它没有帮助。知道怎么才能做到吗?

126705 次浏览

修饰符作为第二个参数给出:

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")

你可以添加“ i”修饰语,意思是“忽略大小写”

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);

简单的一句话。 在下面的例子中,它将每个元音都替换为 X。

function replaceWithRegex(str, regex, replaceWith) {
return str.replace(regex, replaceWith);
}


replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"

另一个建议是: 当你使用“区分大小写的正则表达式”时,你通常可以通过操作你比较的字符串的大小写来完成同样的操作:

const foo = 'HellO, WoRlD!';
const isFoo = 'hello, world!';
return foo.toLowerCase() === isFoo.toLowerCase();

我也会称之为更容易阅读和理解作者的意图!

例如,要搜索词 约会,需要添加参数 的大写或小写字母

意思是不区分大小写

例子

const value = "some text with dAtE";
/date/i.test(value)

或者

const value = "some text with dAtE";
new RegExp("/date/","i");