您好我想使用JavaScript从我的URL中提取查询字符串,我想对查询字符串名称进行不区分大小写的比较。这就是我在做的事情:
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return 0; }
return results[1] || 0;
但上面的代码执行区分大小写的搜索。我试过/<regex>/i
,但没有用。任何想法如何实现?
答案 0 :(得分:185)
您可以添加“i”修饰符,表示“忽略大小写”
var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
答案 1 :(得分:41)
修饰符作为第二个参数给出:
new RegExp('[\\?&]' + name + '=([^&#]*)', "i")
答案 2 :(得分:4)
还有另一种建议:当您发现自己使用“不区分大小写的正则表达式”时,通常可以通过操纵要比较的字符串的大小写来实现相同的目的:
const foo = 'HellO, WoRlD!';
const isFoo = 'hello, world!';
return foo.toLowerCase() === isFoo.toLowerCase();
我也称其为更易于阅读和理解作者的意图!
答案 3 :(得分:0)
一个简单的内衬。 在下面的示例中,它用X替换每个元音。
function replaceWithRegex(str, regex, replaceWith) {
return str.replace(regex, replaceWith);
}
replaceWithRegex('Hello there', /[aeiou]/gi, 'X'); //"HXllX thXrX"