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é?


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

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

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"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.