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?


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);

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")

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"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.