JavaScriptでの大文字と小文字を区別しない正規表現


121

JavaScriptを使用してURLからクエリ文字列を抽出し、クエリ文字列名を大文字と小文字を区別せずに比較したい。これが私がやっていることです:

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

しかし、上記のコードは大文字と小文字を区別する検索を行います。試しました/<regex>/iが、役に立ちませんでした。どうすればそれを達成できるのでしょうか?


5
そのリテラル形式/ regex / iは、それを連結しようとしたり、何かを試みたりしない限り機能します...
Alex

回答:


211

「大文字と小文字を区別しない」を意味する「i」修飾子を追加できます

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);

2
それを1つの文字列にする方法はありますか?
枢機卿-モニカを

11
@CardinalSystem/abc/i
aros

42

修飾子は2番目のパラメーターとして指定されます。

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

またはnew RegExp('^' + string + '$', "i")
Vadim

6

シンプルなワンライナー。以下の例では、すべての母音をXに置き換えます。

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.