今回は、正規表現の新機能と、正規表現で新機能を使用する際の注意事項について説明します。以下は実際的なケースです。
ES2015 正規表現の新機能:
オリジナルの正規表現に基づいて、ES2015 では 4 バイトの Unicode 文字およびその他の機能のサポートが強化されました。
正規表現の内容の詳細については、正規表現チュートリアルのセクションを参照してください。
1. RegExpコンストラクターの使用法:
ES2015 より前には、RegExp コンストラクターを使用して正規表現オブジェクトを作成する方法:
作成方法 1:
var reg = new RegExp("antzone","g");
コンストラクターの最初のパラメーターは正規表現文字列本体で、2 番目のパラメーターは正規表現修飾子です。
上記のコードは、次のコードと同等です:
var regex = /antzone/g;
作成方法 2:
var reg = new RegExp(/antzone/g);
ifパラメータ 正規表現文字列ではないため、パラメータを 1 つだけ指定できます。次の記述は間違っています:
は 2 番目のパラメータの使用を許可しません。パラメータを使用して正規表現式修飾子を設定します。 ES2015 ではこの動作が変更され、最初のパラメータが正規表現オブジェクトであっても、2 番目のパラメータを指定することもできます:
var reg = new RegExp(/antzone/gi,"g");
th 2 つのパラメータで指定された式修飾子は、最初のパラメータの修飾子をオーバーライドします。
2. 文字列の通常のメソッド:
正規表現に関連する match()、replace()、search()、および Split() メソッドは、文字列オブジェクトに属します。 ES2015 ではこれが変更されており、これら 4 つのメソッドが呼び出されるとき、実際には
RegExp オブジェクト のインスタンス メソッドが内部的に呼び出されます。
(1).String.prototype.match は RegExp.prototype[Symbol.match] を呼び出します。 (2).String.prototype.replace は RegExp.prototype[Symbol.replace] を呼び出します(3).String.prototype.search は RegExp.prototype[Symbol.search] を呼び出します
(3).String.prototype.split は RegExp を呼び出します.prototype[Symbol.split]
シンボルの詳細については、ES2015 シンボルの章を参照してください。
3. 後読みアサーション (ES2016):
後読みアサーションについては、正規表現のゼロ幅アサーションに関する章を参照してください。
4. 新しい修飾子:
uModifier | |
y 修飾子 | |
sticky 属性 | |
flags 属性 | |
RegExp.escape() (ES2016) | |
推奨書籍: | 正規表現 W メタキャラクターの使用の詳細な説明 (コード付き) |
以上が正規表現の新機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。