正規表現とは何ですか
私たちは、文字列があるとします。abc_efg_abc_3
今abc_3文字列にマッチします
あなたは書くことができます。
$定位符:表示字符串末
/abc_3$/
よりよいです:
\d元字符:表示任意数字
/abc_\d$/
正規表現は、文字列のパターンマッチングや置き換えを取得するために使用されています
我々は書かれていますが、まだ正式に定期的な文言を導入していないだろうが、上記のような単純な正規表現、
定期的に作成する方法
の定期的なメソッドを作成する方法は2つあります。
- JSスタイル
new RegExp(pattern [, flags])
- perlのスタイル
/pattern/[flags]
私たちは、一般的にperlのスタイル、無地でシンプルを使用しています。
ロケータ、メタ文字、模様(パターン)、識別情報(フラグ):既に発生しているものを上記の概念のいくつかを説明する必要があるとされ
ロケータ
- 文字列の^スタート
- $文字列の末尾
メタキャラクタ
いくつかの簡単な共通のリスト:
- 改行と行末以外の単一の文字を検索します。
- \ Wは単語の文字を検索します。
- \ W非単語の文字を検索します。
- \ D数字を見つけます。
ロゴフラグ
- 私は、大文字と小文字を区別しないマッチングを行います。
- グラム(むしろ、最初に一致した後、停止以外のすべての一致を見つける。)グローバルマッチを行います。
- mは、マルチラインマッチングを行います。
本手
試験方法は: reg.test(str)
返す一致した場合のリターンに、ブール値をtrue
/abc_\d$/.test('abc_efg_abc_3') // return true
execメソッド:reg.exec(str)
マッチが成功した場合、EXEC()メソッドは、配列を返し、正規表現オブジェクトのプロパティを更新します。完全に配列として充填の背後にある、正規に成功マッチした括弧、最初のように、アレイに成功マッチしたテキストを返しました。
マッチが失敗した場合は、EXEC()メソッドはnullを返します。
/a/.exec('ccc_a_b') // return ['a']
これは、使用して定期的に最も簡単であるが、他のいくつかの方法があります
方法通常の文字列
- 検索は、そのマッチする正規表現の値を取得します
- 一致する 1つまたは複数の正規表現マッチングを見つけるために、
- 置き換えるサブ正規表現マッチング文字列を置換
- 分割文字列の配列に文字列を
正規例:電話番号
11個の正しい一致電話番号
セグメント別の一般電話番号は以下のとおりです。13X、15X、17X、18X
/^(13\d|15\d|17[789]|18\d)\d{8}$/
量词:{8},表示8位
方括号[]:表示可选其中任意一个字符
或|:或者
数量詞
ない数量詞の場合、デフォルト
- 8 {8}
- {3,10} 3〜10
- {5,5}少なくとも
- + | {1} 1に等しいより大きい
- {0、全く存在しなくてもよいです}
- ?| {0,1}の有無にかかわらず
角カッコ[]
- [0-9] 0〜9のいずれか
- [^ 0-9] 0-9を除外
- [A-z0-9A-Z]任意の数、文字ケース