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 デバッグ ツール [推奨]

推薦する

MySQLの暗黙的な変換問題の解決

1. 問題の説明 root@mysqldb 22:12: [xucl]> テーブル t1\G ...

Mysqlはブール型の演算を設定します

Mysqlはブール型を設定します1. Tinyintタイプテストテーブルを作成し、blフィールドをブ...

Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

画像をプルする docker プル mysql完成した画像を見る Docker イメージイメージを介...

CSSセレクタを使用してラベルスタイルを設定するサンプルコード

CSS セレクターHTML タグにスタイルを設定すると、タグの属性を設定できます。 <div ...

ウェブサイトに最も必要なのは、ターゲットユーザーグループのエクスペリエンスを向上させることです。

「大河は東に流れ、波は歴代の英雄たちを洗い流した。古城の西側は三国時代の周朗の赤壁だと言われている...

CSS3 は下部に固定されたフッターを実装します (ページの高さに関係なく常に下部にあります)

序文フッター領域を下部に固定します。ページの高さや幅に関係なく、モバイル メニューと同様に、フッター...

Redhat 7.3 に MySQL 8.0.22 をインストールするための詳細なチュートリアル (バイナリ インストール)

目次1. MySQLインストールパッケージをダウンロードする2. MySQLのアンインストール手順3...

CSS の vertical-align プロパティとベースラインの問題に関する深い理解

vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...

CSS3 の transition、transform、translate の違いと機能の簡単な分析

変換して翻訳するTransform は、変換と変形を意味します。他の幅属性や高さ属性と同様に、CSS...

Docker で Spring-boot プロジェクトをデプロイするためのサンプル コード

1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...

GobangゲームのWebバージョンを実装するためのJavaScript

この記事では、GobangゲームのWebバージョンを実装するためのJavaScriptの具体的なコー...

...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

MySQLに必要な共通知識のまとめ

目次主キー制約一意の主キー非 Null 制約デフォルトの制約外部キー制約1NF 2NF 3NFデータ...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...