Нечувствительное к регистру регулярное выражение в javascript

Привет, я хочу извлечь строку запроса из моего URL с помощью JavaScript, и я хочу сделать нечувствительное к регистру сравнение для имени строки запроса. Вот что я делаю:

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

Но приведенный выше код выполняет поиск с учетом регистра. Я попробовал /<regex>/i, но это не помогло. любая идея, как это можно достичь?

Ответ 1

Вы можете добавить модификатор "i", который означает "игнорировать регистр"

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

Ответ 2

Модификаторы

задаются как второй параметр:

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

Ответ 3

Простой один лайнер. В приведенном ниже примере он заменяет каждый гласный на X.

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

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