Regex que no distingue entre mayúsculas y minúsculas en JavaScript

121

Quiero extraer una cadena de consulta de mi URL usando JavaScript, y quiero hacer una comparación que no distinga entre mayúsculas y minúsculas para el nombre de la cadena de consulta. Esto es lo que estoy haciendo:

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

Pero el código anterior hace una búsqueda sensible a mayúsculas y minúsculas. Lo intenté /<regex>/ipero no sirvió de nada. ¿Alguna idea de cómo se puede lograr eso?

Amit
fuente
5
Ese formato literal / regex / i debería funcionar, a menos que intentes concatenarlo o algo así ...
Alex

Respuestas:

211

Puede agregar un modificador 'i' que significa "ignorar mayúsculas y minúsculas"

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
Michał Niklas
fuente
2
¿De alguna manera lo convierto en una sola cadena?
Cardenal - Reincorpora a Monica
11
@CardinalSystem/abc/i
aross
42

los modificadores se dan como segundo parámetro:

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

Un trazador de líneas simple. En el siguiente ejemplo, reemplaza cada vocal con una X.

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

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