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

Case insensitive regex in javascript

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

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

但是上面的代码进行了区分大小写的搜索。我试过//i,但没用。你知道怎么做到吗?


您可以添加"i"修饰符,表示"忽略大小写"

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


修饰符作为第二个参数提供:

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


简单的一个内衬。在下面的例子中,它用一个x替换每个元音。

1
2
3
4
5
function replaceWithRegex(str, regex, replaceWith) {
  return str.replace(regex, replaceWith);
}

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