Wyrażenie regularne bez rozróżniania wielkości liter w JavaScript


121

Chcę wyodrębnić ciąg zapytania z mojego adresu URL za pomocą JavaScript i chcę wykonać porównanie bez rozróżniania wielkości liter dla nazwy ciągu zapytania. Oto co robię:

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

Ale powyższy kod przeprowadza wyszukiwanie z uwzględnieniem wielkości liter. Próbowałem, /<regex>/iale to nie pomogło. Masz jakiś pomysł, jak to osiągnąć?


5
Ten dosłowny format / regex / powinien działać, chyba że próbowałeś go połączyć lub coś takiego ...
Alex,

Odpowiedzi:



42

modyfikatory są podane jako drugi parametr:

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")

lubnew RegExp('^' + string + '$', "i")
Vadim,

6

Prosta jedna wkładka. W poniższym przykładzie zastępuje każdą samogłoskę znakiem X.

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.