正規表現は、パターンマッチング、またはマッチングの場所、または一致する文字です
1.どのようなポジション?
位置は、ハロー、矢印の場所であるように、隣接する文字間の位置であります
2、どのように位置を一致させるには?
ES5で、6つの文字の合計:
1 ^ 開始一致 2 $は、端と一致 3 \ Bワード境界 4 \ Bの\ Bが反対、非ワード境界を 図5(?= P)サブパターンP、すなわち、p-位の前に 。6(!P)(?= P)反対
ここでは、1これらの文字ずつを導入しました
そして、$ 2.1 ^
^(キャレット)は初め、マルチラインマッチングにおける一致行の先頭に一致します。
$
マルチラインマッチングの行の末尾に一致する(ドル記号)試合終了、。
例えば、我々は(!位置は文字に置き換えることができます)と「#」で、文字列の最初と最後に置きます:
1つの VARの結果= "こんにちは" .replace(/ ^ | $ / gで、 '#' ); 2 にconsole.log(結果)。 3 // => "#こんにちは#"
Bと\ B \ 2.2
\b
これは、特定されたワード境界である\w
と\W
の間の位置だけでなく、\w
と^
の間の位置だけでなく、\w
と$
の間に位置。
たとえば、ファイル名は「[JS] Lesson_01.mp4」であり\b
、次のように:
1つの VARの結果= "[JS] Lesson_01.mp4" .replace(/ \ B / G、 '#' )。 2 にconsole.log(結果)。 3 // => "[#JS#]#Lesson_01#。#のMP4#"
このような上記の例のように、すべてが\B
「#」に置き換え:
1 VAR結果= "[JS] Lesson_01.mp4" .replace(/ \ B / gで、 '#' )。 2 にconsole.log(結果)。 3 // => "#[J#S]#1の#E#1 S#1、S#0と#N#_#0#1 1.M#Pは#4"
2.3(?= P)と(?!P)
(?=p)
これはp
、サブモード、すなわち、あるp
前方位置。
例えば(?=l)
、例えば、その「L」の文字位置を示します。
1つの VARの結果= "こんにちは" .replace(/(= L)/ gで、 '#'? )。 2 にconsole.log(結果)。 3 // => "彼#1の#のLO"
そして、(?!p)
それはある(?=p)
ような意味の反対、:
1つの VARの結果= "こんにちは" .replace(/(?L)/ gで、 '#' )。 2 3 にconsole.log(結果)。 4 // => "#1 H#1エル#0と#"
ポイント3.ケース:
3.1デジタルマイクロメーターセパレータ表記
このような「12345678」のように、「12345678」になります。
STEP1:最後のカンマを思い付きます
VaRの結果= "12345678" .replace(/(= \ D {3} $)/ G ''? ) はconsole.log(結果)。 // => "12345,678"
すべてのコンマを思い付きます
1つの VARの結果= "12345678" .replace(?/(=(\ dの{3})+ $)/ G '' ) 2 はconsole.log(結果)。 3 // => "12345678"
3.2認証コードに関する問題
6-12パスワードの長さ、デジタル、小文字と大文字が、少なくとも2つの文字を含める必要があります。
3.2.1あなたは簡単に書くことができる2つの文字を含ま考慮しない場合
1つの VARの REG = / ^ [0-9A-ZA-Z] {6,12} $ /。
特定の文字を含めるかどうかを決定するため3.2.2
仮定が行うにはどのように小文字が含まれている必要がありますか?缶(?=。* [0-9])
*任意の一文字回にマッチ
。*?条件は一度しか満たされているマッチ
VaRの REG = 0909AZaz612。
3.2.3同僚は、特定の2つの文字を含めます
VaRの REG = 09az09AZaz612。
3.2.4には、少なくとも2つの文字が含まれています
VaRの REG = 09az09AZ 。* [AZ])(? = * [AZ]))^ [0-9A-ZA-Z] {6,12} $ /。
別の解決策を3.2.5:すべてのデジタルすることはできません少なくとも二つの文字が含まれ、すべて小文字ではなく、すべて大文字にすることはできません
VAR REG = /(?!^ [0-9] {6,12} $)(?!^ [Z] {6,12} $)(?!^ [AZ] {} $ 6.12)^ [ 0-9A-ZA-Z] {} $ 6.12 /。