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

Ami*_*mit 112 javascript regex

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

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

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

Mic*_*las 195

你可以添加'i'修饰符,意思是"忽略大小写"

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

  • @CardinalSystem`/abc/i` (8认同)
  • 我把它变成一个字符串的任何方式? (2认同)

Bra*_*ace 42

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

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")
Run Code Online (Sandbox Code Playgroud)

  • 或 `new RegExp('^' + string + '$', "i")` (2认同)

Pos*_*hin 7

简单的一个班轮。在下面的示例中,它将每个元音替换为 X。

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
Run Code Online (Sandbox Code Playgroud)


daw*_*ski 7

例如要搜索单词date,大写或小写,您需要添加参数i

i = 表示不区分大小写

例子

const value = "some text with dAtE";
/date/i.test(value)
Run Code Online (Sandbox Code Playgroud)

或者

const value = "some text with dAtE";
 new RegExp("/date/","i");
Run Code Online (Sandbox Code Playgroud)