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

时间:2010-10-15 05:30:11

标签: javascript regex

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

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

但上面的代码执行区分大小写的搜索。我试过/<regex>/i,但没有用。任何想法如何实现?

4 个答案:

答案 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"