Regex que não diferencia maiúsculas de minúsculas em JavaScript

121

Quero extrair uma string de consulta do meu URL usando JavaScript e fazer uma comparação sem distinção entre maiúsculas e minúsculas para o nome da string de consulta. Aqui está o que estou fazendo:

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

Mas o código acima faz uma pesquisa com distinção entre maiúsculas e minúsculas. Eu tentei, /<regex>/imas não adiantou. Alguma ideia de como isso pode ser alcançado?

Amit
fonte
5
Esse formato literal / regex / i deve funcionar, a menos que você tente concatená-lo ou algo assim ...
Alex

Respostas:

211

Você pode adicionar o modificador 'i' que significa "ignorar maiúsculas e minúsculas"

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
Michał Niklas
fonte
2
Posso transformar isso em uma corda?
Cardeal - Reintegrar Monica
11
@CardinalSystem/abc/i
torno de
42

modificadores são fornecidos como o segundo parâmetro:

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")
Brad Mace
fonte
ounew RegExp('^' + string + '$', "i")
Vadim
6

Um forro simples. No exemplo abaixo, ele substitui todas as vogais por um X.

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
Diego Fortes
fonte