JavaScriptのreplaceメソッドはJavaのものと同様に、文字列内の特定の部分を置換する機能を持っています。
構文:stringObj.replace(rgExp, replaceText)
- stringObj: 置換対象となる文字列。
- rgExp: 正規表現オブジェクトまたは文字列。置換したいパターンを指定します。
- replaceText: 置換後のテキスト。一致した部分がこのテキストに置き換えられます。
JavaScriptではreplaceAllメソッドが存在せず、グローバルな置換を行うには正規表現を使用する必要があります。
例:文字列内のカンマをスペースに置換する場合:
substring.replace(/,/g, ' ');
例:%3C、%3E、<、>を空文字に置換する場合:
const reg = /%3C|%3E|<|>/g;
return r[2].replace(reg, '');
正規表現の修飾子:
| i | 大文字小文字を区別せずにマッチング。 |
|---|---|
| g | すべてのマッチングを行う。 |
| m | 複数行モードでマッチング。 |
よく使うメタキャラクタと正規表現:
| \* | 次の文字を特殊文字、またはリテラルとして解釈。 |
|---|---|
| ^ | 入力文字列の開始位置をマッチング。 |
| $ | 入力文字列の終了位置をマッチング。 |
| * | 前のサブエキスプレッションを0回以上繰り返す。 |
| + | 前のサブエキスプレッションを1回以上繰り返す。 |
| ? | 前のサブエキスプレッションを0回または1回繰り返す。 |
| {n} | 前のサブエキスプレッションをn回繰り返す。 |
| {n,} | 前のサブエキスプレッションをn回以上繰り返す。 |
| {n,m} | 前のサブエキスプレッションをnからm回まで繰り返す。 |
| ? | 直前の修飾子を非貪欲モードにする。 |
| . | 改行文字以外の任意の単一の文字をマッチング。 |
| (pattern) | patternをマッチングし、結果をキャプチャする。 |
| (?:pattern) | patternをマッチングするがキャプチャしない。 |
| (?=pattern) | patternの前に位置している場所をマッチングする。 |
| (?!pattern) | patternの前に位置していない場所をマッチングする。 |
| x|y | xかyをマッチングする。 |
| [xyz] | xyzの中のいずれか1文字をマッチングする。 |
| [^xyz] | xyz以外のいずれか1文字をマッチングする。 |
| [a-z] | aからzまでのいずれか1文字をマッチングする。 |
| [^a-z] | aからz以外のいずれか1文字をマッチングする。 |
| \b | 単語境界をマッチングする。 |
| \B | 単語境界以外をマッチングする。 |
| \d | 数字をマッチングする。 |
| \D | 数字以外をマッチングする。 |
| \s | 空白文字をマッチングする。 |
| \S | 空白文字以外をマッチングする。 |
| \w | 単語文字(アルファベット、数字、アンダースコア)をマッチングする。 |
| \W | 単語文字以外をマッチングする。 |