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

IT技术 javascript regex
2021-02-07 16:21:23

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

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

但是上面的代码做了区分大小写的搜索。我试过了,/<regex>/i但没有帮助。知道如何实现吗?

5个回答

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

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
有什么办法可以把它变成一个字符串?
2021-03-28 16:21:23
@CardinalSystem /abc/i
2021-04-08 16:21:23

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

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")
或者 new RegExp('^' + string + '$', "i")
2021-04-04 16:21:23

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

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
从技术上讲是五行,但谁在数数 😉
2021-03-16 16:21:23
好点子。我应该少学编程,多学数学。
2021-03-16 16:21:23

只是一个替代建议:当您发现自己正在使用“不区分大小写的正则表达式”时,您通常可以通过操作您正在比较的字符串的大小写来完成相同的操作:

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

我也认为这更容易阅读和理解作者的意图!

加 1 让我微笑:D
2021-03-15 16:21:23

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

i = 表示不区分大小写

例子

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

或者

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