Regex insensible à la casse en JavaScript

121

Je souhaite extraire une chaîne de requête de mon URL à l'aide de JavaScript, et je souhaite effectuer une comparaison insensible à la casse pour le nom de la chaîne de requête. Voici ce que je fais:

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

Mais le code ci-dessus effectue une recherche sensible à la casse. J'ai essayé /<regex>/imais cela n'a pas aidé. Une idée comment cela peut-il être réalisé?

Amit
la source
5
Ce format littéral / regex / i devrait fonctionner, à moins que vous n'essayiez de le concaténer ou quelque chose comme ça ...
Alex

Réponses:

211

Vous pouvez ajouter le modificateur «i» qui signifie «ignorer la casse»

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
Michał Niklas
la source
2
De toute façon je fais ça en une seule chaîne?
Cardinal - Réintégrer Monica
11
@CardinalSystem/abc/i
aross
42

les modificateurs sont donnés comme deuxième paramètre:

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

Une doublure simple. Dans l'exemple ci-dessous, il remplace chaque voyelle par un X.

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

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