JavaScript における正規表現の実際的な応用の詳細な説明

JavaScript における正規表現の実際的な応用の詳細な説明

実際の業務では、JavaScript の正規表現が依然として頻繁に使用されます。したがって、この部分の知識は非常に重要です。

1. 基本的な文法:

1つ目: リテラル構文

var 式 = /パターン/フラグ;

2番目: RegExpコンストラクタ構文

var pattern = /\w/gi; //リテラル​​構文 var pattern = new RegExp('\\w', 'gi'); //コンストラクタ構文、これら 2 つは同等です

ここで注意すべき点は、正規表現が動的である場合は、2 番目のオプションのみを選択できることです。

旗には3つの旗があります

g: はグローバル パターンを示します。つまり、最初の一致が見つかったときにすぐに停止するのではなく、すべての文字列にパターンが適用されます。

i: 大文字と小文字を区別しないモードを示します。つまり、一致を判断するときにパターンと文字列の大文字と小文字は無視されます。

m: 複数行モードを示します。つまり、テキストの行の末尾に達すると、次の行にパターンに一致する項目があるかどうかの検索が続行されます。

もちろん、他のフラグもありますが、それらはめったに使用されないため、詳細には説明しません。

上記の \w が何を意味するかについては、少し待ってから読み続けてください。

2. 方法

主なものは、test()、search()、match()、replace() です。もちろん、他にも多くの方法がありますが、あまり使用されていないため、ここでは詳しく説明しません。

1. test() メソッドの使用

文字列に対応する文字列が含まれているかどうかを判定する

2. search() メソッドの使用

文字列の最初の出現のインデックスを検索し、見つからない場合は -1 を返します。

3. match() メソッドの使用

一致した配列を返します

4. replace() メソッドの使用は依然として非常に一般的です

文字列と一致し、別の文字列に置き換えます

3. 表情と実戦を合わせる

1. 主張:

アサーションは、特定の条件下で一致が発生することを示します。要するに、概念が少しわかりにくいので、そのまま読み進めてください。ゆっくり続けさせてください。

キャラクター説明する
^先頭に一致
$終わりに一致する
\b単語の境界を合わせる
\B単語境界以外を一致させる

例えば

大文字と小文字を区別せずに、dog で始まり dog で終わる文字列を一致させたいです。

var pattern = /^dog$/i; //大文字と小文字を無視 console.log(pattern.test('dog')); //true
console.log(pattern.test('sdfdog'));//false
console.log(pattern.test('dog56'));//false
console.log(pattern.test('dOG'));//true
var pattern = /\b\w+/g; // グローバル マッチ。ここでの + は量指定子で、1 回以上を表します。 console.log('Hello World'.match(pattern)); // 出力 ['Hello','World']。これは match の使用方法であり、一致の配列を返します。

ここで、\b は単語の境界に一致し、\B は非単語の境界に一致します。 1 つは小文字、もう 1 つは大文字で、大文字は逆になっています。それで、これ以上言う必要はありません。

単語の境界について話しましょう。おそらく多くの人は単語の境界についてあまり明確に理解していないでしょう。

簡単に説明しましょう。例えば、「He​​llo World」という単語には、H 位置、o 位置、W 位置、d 位置の 4 つの境界があります。

2. キャラクタークラス:

メタ文字説明する
改行文字と行末文字を除く単一の文字を検索します
\w [A-Za-z0-9_]に相当する単語文字を検索します
\W [^A-Za-z0-9_]に相当する非単語文字を検索します。
以下の反意語はリストに表示されなくなりました。
\d [0-9]に相当する数字を検索します
\s空白文字を検索する
\0 NULL文字を見つける
\n改行を見つける
\fページ区切りを見つける
\r改行コードを見つける
\tタブ文字を検索
\v垂直タブ文字を検索する

3. 範囲:

キャラクター説明する
[abc] a、b、cの任意の文字に一致します
[^abc] a、b、c以外の文字に一致します
[0-9] 0~9 の範囲の任意の数字に一致します。同様に、[az] は az の範囲の任意の文字に一致します。
[あず] aからzまでの任意の文字に一致します
x|y xまたはyに一致する

4. 数量詞:

キャラクター説明する
n+少なくとも1文字nを含む文字列に一致します
いいえ* 0個以上のnを含む文字列に一致します
ん? 0個または1個のnを含む文字列に一致します
ネクサスx nを含む文字列に一致します
y は y の 1 乗です。少なくとも x 文字、最大で y n 文字の文字列に一致します。

4. 拡大

10から36までの数字に一致します

var パターン = /1[2-9]|[2-3][0-9]|4[0-6]/;//12-46

console.log(pattern.test(11));//false
console.log(pattern.test(12));//true
console.log(pattern.test(20));//true
console.log(pattern.test(36));//true
console.log(pattern.test(46));//true
console.log(pattern.test(47));//false

「Hello, World! Hello」のHelloをWelcomeに置き換える

ここでは、正規表現での replace メソッドの使用に重点を置きます。これは、実際には非常に頻繁に使用されるためです。旗に g を追加するか追加しないかでは大きな違いがあります。

var パターン = /Hello/g;

var oldString = 'Hello,World!Hello';
var newString = oldString.replace(パターン、'Welcome');
console.log(newString);//ようこそ、世界よ!ようこそ

要約する

JavaScript における正規表現の実践的な応用に関するこの記事はこれで終わりです。より関連性の高い JavaScript 正規表現については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Javascript における一般的な正規表現の適用に関する簡単な説明
  • JavaScript における正規表現の概念と応用
  • JavaScript正規表現の複数行属性の応用
  • JSアプリケーションの正規表現変換例
  • js 正規表現置換アプリケーションケースの説明
  • Javascript における正規表現の適用の詳細な説明

<<:  MySQLで論理SQLを置き換える際の落とし穴を回避する方法の詳細な説明

>>:  開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

推薦する

WeChat アプレット開発フォーム検証 WxValidate の使用

個人的には、WeChat アプレットの開発フレームワークは VUE と概ね似ていると感じていますが、...

node.js で PC 上の WeChat アプレット パッケージを復号化するための処理アイデア

目次アプレットのソースコードはどこにありますか? PC ミニプログラムはどのように暗号化されますか?...

MySQL 自動インクリメント ID のオーバーサイズ問題のトラブルシューティングと解決策

導入Xiao A がコードを書いていたところ、DBA Xiao B が突然、「急いでユーザー固有情報...

Windows での MySQL 8.0.11 インストール チュートリアル

この記事は、WindowsでのMySQL 8.0.11のインストールチュートリアルを記録しています。...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

Mac OS に MySQL 5.7.20 をインストールするための詳細なグラフィックとテキストの説明

Mac OS X で TAR.GZ から MySQL 5.7 をインストールする MySQL 5.6...

Angular 依存性注入の説明

目次概要1. 依存性注入2. Angularの依存性注入フレームワーク概要依存性注入: デザインパタ...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

Vueリスナーの使用例の詳細な説明

1つ目はjQueryのajaxを使用してリクエストを送信することです ユーザーが登録するときに、リス...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

トピックページデザインの 5 つの基本スキル (Alibaba UED Shanmu)

このトピックは、2012 年後半の社内共有です。まだ記事にはなっていませんが、春節が近づいているので...

MySQL列挙型のテスト例

プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...