1. 正規表現の作成JavaScript には正規表現を作成する方法が 2 つあります。
定数 re1 = /ABC\-001/; const re2 = 新しい正規表現('ABC\\-001'); re1; // /ABC\-001/ re2; // /ABC\-001/ 2 番目の書き方を使用する場合、文字列エスケープの問題により、文字列内の 2 つの \ は実際には 1 つの \ になることに注意してください。 2. 使用モード2.1 シンプルモードの使用単純なパターンは、見つかった直接一致で構成されます。たとえば、パターン /abc/ は、文字列内で同時にその順序で出現する文字 'abc' のみに一致します。これは、「こんにちは、ABC を知っていますか?」や「最新の飛行機の設計はスラブクラフトから進化しました。」に一致します。上記の両方の例では、部分文字列「abc」が一致します。 「Grab crab」という文字列には「abc」という部分文字列が含まれていないため、一致しません。 2.2 特殊文字の使用たとえば、パターン /abc/ は、1 つの「a」に続いて 0 個以上の「b」(前の項目が 0 回以上出現することを意味します)が続き、その後に「c」の任意の文字の組み合わせが続くものに一致します。文字列「s'scbbabbbbcdebc」では、このパターンは部分文字列「abbbbc」と一致します。
3. 応用3.1 文字列の分割正規表現を使用して文字列を分割すると、固定文字を使用するよりも柔軟になります。通常の分割コードは次のとおりです。 'ad c'.split(' '); // ['a', 'd', '', '', 'c'] 上記の方法では連続するスペースを認識できないため、代わりに正規表現を使用します。 'ab c'.split(/\s+/); // ['a', 'b', 'c'] スペースがいくつあっても、文字列は正常に分割できます。次に「,」を追加します。 'a,b, c d'.split(/[\s\,]+/); // ['a', 'b', 'c', 'd'] 次に以下を追加します: 'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd'] したがって、正規表現を使用して、不規則な入力を正しい配列に変換できます。 3.2 グループ化正規表現では、一致があるかどうかを判断するだけでなく、部分文字列を抽出することもできます。() で表される部分文字列が抽出されるグループです。例えば: ^(\d{4})-(\d{4,9})$ はそれぞれ 2 つのグループを定義し、一致した文字列から市外局番と市内番号を直接抽出できます。 var re = /^(\d{4})-(\d{4,9})$/; re.exec('0530-12306'); // ['010-12345', '010', '12345'] re.exec('0530 12306'); // ヌル 一致が成功すると、exec() メソッドは配列を返します。最初の要素は正規表現に一致した文字列全体であり、後続の文字列は一致が成功した部分文字列を表します。 一致が失敗した場合、exec() メソッドは null を返します。 3.3 貪欲マッチング正規表現のマッチングはデフォルトでは貪欲であり、つまり可能な限り多くの文字と一致することに注意してください。次のように、数字の後の 0 を一致させます。 var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300', '102300', ''] \d+ は貪欲な一致を使用するため、後続のすべての 0 と直接一致し、0* は空の文字列とのみ一致します。 次の 0 と一致させるには、\d+ で非貪欲な一致 (つまり、できるだけ少ない一致) を使用するようにする必要があります。? を追加すると、\d+ で非貪欲な一致が使用されるようになります。 var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300', '1023', '00'] 3.4 正規表現フラグg グローバル検索。 i 大文字と小文字を区別しない検索。 m 複数行検索。 y ターゲット文字列の現在の位置から一致を開始する「スティッキー」検索を実行します。 y フラグを使用できます。 3.5 test() メソッドtest() メソッドは、文字列がパターンに一致するかどうかを確認するために使用されます。文字列に一致するテキストが含まれている場合は true を返し、含まれていない場合は false を返します。 var re = /^(\d{4})-(\d{4,9})$/; re.test('0530-12321'); // 真 re.test('0530-123ab'); // 偽 re.test('0530 12321'); // 偽 4. よく使われる正規表現(参考)メールアドレスを確認してください: ^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ ID 番号を確認してください (15 桁または 18 桁): ^\d{15}|\d{}18$ 中国本土の携帯電話番号: 1\d{10} 中国本土の固定電話番号: (\d{4}-|\d{3}-)?(\d{8}|\d{7}) 中国本土郵便番号: [1-9]\d{5} IPアドレス: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 日付 (年-月-日): (\d{4}|\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9])) 日付(月/日/年):((1[0-2])|(0?[1-9]))/(([12][0-9])|(3[01])|(0?[1-9]))/(\d{4}|\d{2}) 番号を確認してください: ^[0-9]*$ n桁の数字を検証: ^\d{n}$ 少なくとも n 桁の数字が存在することを確認します: ^\d{n,}$ mn桁の数を確認します: ^\d{m,n}$ 数字がゼロで始まっているか、ゼロ以外で始まっているかを確認します: ^(0|[1-9][0-9]*)$ 正の実数に小数点以下 1 ~ 3 桁があることを確認します: ^[0-9]+(.[0-9]{1,3})?$ ゼロ以外の正の整数を検証します: ^\+?[1-9][0-9]*$ 整数がゼロでないことを確認します: ^\-[1-9][0-9]*$ 負でない整数(正の整数 + 0)を検証する ^\d+$ 非正整数(負の整数 + 0)^((-\d+)|(0+))$ を検証します 文字の長さが 3 であることを確認します: ^.{3}$ 26文字の英語の文字列を検証します: ^[A-Za-z]+$ 26 個の大文字の英語の文字で構成される文字列を検証します: ^[AZ]+$ 26 個の小文字の英語文字で構成される文字列を検証します: ^[az]+$ 数字と26文字の英語の文字で構成される文字列を検証します: ^[A-Za-z0-9]+$ 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Dockerを使用してOracle_11gをインストールする方法
序文最近、友人がSQLを書くときにnull値を判定する方法が間違っていて、プログラム内のデータにエラ...
効果図は以下のとおりです。 <!DOCTYPE html> <html lang=...
複数列のインデックスについては、理解が不足していることがよくあります。よくある間違いは、多数の列に独...
目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...
障害に遭遇すると、障害の根本的な原因を考えるのではなく、障害を解決する方法を考えることがよくあります...
MySQL 文字列の連結、インターセプト、置換、および検索位置。よく使用される文字列関数:関数例示す...
ハイパーリンクは、Web サイト上のすべてのページがハイパーリンクで接続され、ページ間を移動できるた...
Nginx はネストされた if ステートメントをサポートしておらず、if ステートメントでの論理判...
この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
この記事では、例を使用して、MySQL レプリケーションの原理と実際のアプリケーションについて説明し...
テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...
最近、インターネットで「Build your own React」という記事を見ました。著者は、シン...
目次Dockerイメージのダウンロードmysqlとnacosを起動する独自のJavaプロジェクトを変...
問題: MySQLテーブル内の自動増分IDのオーバーフローによりビジネスブロックが発生した背景: t...