亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript RegExp オブジェクト

正規(guī)表現(xiàn)とは何ですか?

正規(guī)表現(xiàn)は文字のパターンオブジェクトを記述します。

テキストを取得する場(chǎng)合、パターンを使用して取得する內(nèi)容を説明できます。 RegExp はこのパターンです。

簡(jiǎn)単なパターンは単一の文字にすることができます。

より複雑なパターンにはより多くの文字が含まれており、解析、形式チェック、置換などに使用できます。

文字列內(nèi)の検索位置や検索する文字の種類などを指定できます。

JavaScript は、正規(guī)表現(xiàn)に関連する操作と関數(shù)を完了するための RegExp オブジェクトを提供します。各正規(guī)表現(xiàn)パターンは RegExp インスタンスに対応します


RegExp オブジェクトのインスタンスを作成するには 2 つの方法があります。
RegExp の明示的なコンストラクターを使用します。構(gòu)文は次のとおりです: new RegExp("pattern"[,"flags"])。
RegExp の暗黙的コンストラクターをプレーンテキスト形式で使用します: /pattern/[flags]

pattern 部分は、使用される正規(guī)表現(xiàn)パターンのテキストであり、これは必須です。最初の方法では、パターン部分は JavaScript 文字列の形式で存在し、二重引用符または一重引用符で囲む必要があります。2 つ目の方法では、パターン部分は 2 つの「/」でネストされており、引用符は使用できません。 。

flags 部分は、正規(guī)表現(xiàn)のフラグ情報(bào)を設(shè)定します (オプション)。フラグ部分が設(shè)定されている場(chǎng)合、最初の方法では文字列の形式で存在し、2 番目の方法では最後の「/」文字の直後のテキストの形式で存在します。 flags には、次のフラグ文字を組み合わせて指定できます。
g はグローバルフラグです。このフラグが設(shè)定されている場(chǎng)合、テキストに対する検索と置換の操作は、テキストの一致するすべての部分に影響します。このフラグが設(shè)定されていない場(chǎng)合は、最も古い一致のみが検索され、置換されます。

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文網(wǎng)(php.cn)</title> 
<script type="text/javascript">
var myString="這是第一個(gè)正則表達(dá)式的例子"; 
var myregex = new RegExp("一個(gè)"); // 創(chuàng)建正則表達(dá)式 
if (myregex.test(myString)){ 
document.write("找到了指定的模式!"); 
} 
else{ 
document.write("未找到指定的模式。"); 
} 
</script>
</head>
<body>
</body>
</html>

RegExp 修飾子

g はグローバルシンボルです。このフラグが設(shè)定されている場(chǎng)合、テキストに対する検索と置換の操作は、テキストの一致するすべての部分に影響します。このフラグが設(shè)定されていない場(chǎng)合は、最も古い一致のみが検索され、置換されます。
i は大文字と小文字を無視するフラグです。このフラグが設(shè)定されている場(chǎng)合、一致比較を行うときに大文字と小文字が無視されます。
m は複數(shù)行のフラグです。このフラグが設(shè)定されていない場(chǎng)合、メタキャラクタ「^」は検索文字列全體の先頭のみと一致し、メタキャラクタ「$」は検索文字列の末尾のみと一致します。このフラグが設(shè)定されている場(chǎng)合、「^」は検索文字列の「n」または「r」の後の位置(次の行の先頭)にも一致し、「$」も検索文字列に一致します。 「n」または「r」の後 (つまり、次の行の終わり)。 RegExp オブジェクトのプロパティは、靜的プロパティとインスタンス プロパティに分けられます。

1 靜的屬性
(1) インデックス屬性。これは、現(xiàn)在の表現(xiàn)パターンの最初に一致するコンテンツの開始位置です (0 から數(shù)えます)。初期値は -1 で、一致が成功するたびにインデックス屬性が変更されます。
(2) 入力屬性。処理対象の現(xiàn)在の文字列を返します。これは $_ と省略できます。初期値は空の文字列 "" です。
(3)lastIndex 屬性。現(xiàn)在の表現(xiàn)パターンが最初に一致するコンテンツ內(nèi)の最後の文字の次の位置です。カウントは 0 から始まります。初期値は -1 で、検索を継続することを意味します。一致するたびに開始位置から開始され、それに応じて lastIndex 屬性値が変更されます。
(4)lastMatch 屬性?,F(xiàn)在の式パターンの最後に一致する文字列です。$& と省略できます。初期値は空の文字列「」です。 lastMatch 屬性の値は、一致が成功するたびに変化します。
(5)lastParen 屬性。式パターン內(nèi)に囲まれた部分一致がある場(chǎng)合、それは現(xiàn)在の式パターン內(nèi)の最後の部分一致と一致する部分文字列であり、$+ と省略できます。初期値は空の文字列「」です。 lastParen 屬性の値は、一致が成功するたびに変化します。
(6)leftContext 屬性?,F(xiàn)在の式パターンで最後に一致する文字列の左側(cè)にあるすべての文字列であり、$` と省略できます (「'」はキーボードの「Esc」の下にある逆引用符です)。初期値は空文字列「」です。一致が成功するたびに、そのプロパティ値が変化します。
(7) rightContext 屬性。これは、現(xiàn)在の式パターンで最後に一致する文字列の右側(cè)にあるすべてのものであり、$' と省略できます。初期値は空文字列「」です。一致が成功するたびに、そのプロパティ値が変化します。
(8)$1…$9 の屬性。これらのプロパティは読み取り専用です。式パターン內(nèi)に囲まれたサブマッチがある場(chǎng)合、$1...$9 屬性値は、それぞれ最初から 9 番目のサブマッチによってキャプチャされた?jī)?nèi)容になります。 9 個(gè)を超える部分一致がある場(chǎng)合、$1...$9 屬性はそれぞれ最後の 9 個(gè)の部分一致に対応します。式パターンでは、括弧で囲まれたサブマッチをいくつでも指定できますが、RegExp オブジェクトは最後の 9 つのサブマッチの結(jié)果のみを保存できます。 RegExp インスタンス オブジェクトの一部のメソッドによって返される結(jié)果配列では、括弧內(nèi)のすべての部分一致結(jié)果を取得できます。

2 インスタンス屬性
(1) グローバル屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定されたグローバル フラグ (g) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に g フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(2)ignoreCase 屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定されたignoreCase フラグ (i) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に i フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(3) multiLine 屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定された multiLine フラグ (m) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に m フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(4) ソース屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定された式テキスト文字列を返します。


RegExpオブジェクトメソッド

1テストメソッド
構(gòu)文形式はtest(str)です。このメソッドは、RegExp オブジェクト インスタンスの作成時(shí)に指定された式パターンが文字列內(nèi)に存在するかどうかを確認(rèn)し、存在する場(chǎng)合は True を返し、存在しない場(chǎng)合は False を返します。一致が見つかった場(chǎng)合、RegExp オブジェクト內(nèi)の関連する靜的プロパティが更新されて、一致が反映されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<script>
var str="Is this all there is?";
var patt1=/is/gi;
document.write(str.match(patt1));
</script>
</body>
</html>

2 execメソッド
構(gòu)文形式はexec(str)です。このメソッドは、RegExp オブジェクト インスタンスの作成時(shí)に指定された式パターンを使用して文字列を検索し、検索結(jié)果を含む配列を返します。正規(guī)表現(xiàn)にグローバル フラグ (g) が設(shè)定されている場(chǎng)合は、RegExp オブジェクトの lastIndex 屬性値で指定された位置から毎回 exec メソッドと test メソッドを複數(shù)回呼び出すことで、文字列內(nèi)を継続的に検索できます。
グローバル フラグ (g) が設(shè)定されていない場(chǎng)合、exec メソッドと test メソッドは RegExp オブジェクトの lastIndex 屬性値を無視し、文字列の先頭から検索を開始します。
exec メソッドで一致が見つからない場(chǎng)合、戻り値は null になります。一致が見つかった場(chǎng)合は、配列が返され、その一致を反映するように RegExp オブジェクト內(nèi)の関連する靜的プロパティが更新されます。返された配列の要素 0 には完全な一致結(jié)果が含まれ、要素 1 ~ n は式パターンで定義された各部分一致の結(jié)果です。
exec メソッドによって返される配列には、input、index、lastIndex という 3 つの屬性があります。
入力屬性は、検索された文字列全體です。
index 屬性は、検索文字列全體內(nèi)の一致する位置を參照します。
lastIndex 屬性は、一致した部分文字列の最後の文字の次の文字位置を參照します。
りー


學(xué)び続ける
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> var strSrc = "xxa1b01c001yya2b02c002zz"; var re = /a(\d)b(\d{2})c(\d{3})/gi; var arr, count = 0; while ((arr = re.exec(strSrc))!= null) { displayResult(); } function displayResult() { document.write("<p>這是用正則表達(dá)式/" + re.source + "/gi對(duì)字符串<br>" + RegExp.input + "進(jìn)行第" + (++count) + "次搜索的結(jié)果:<br>"); document.write("RegExp.index為" + RegExp.index + "<br>"); document.write("RegExp.lastIndex為" + RegExp.lastIndex + "<br>"); document.write("RegExp.lastMatch為" + RegExp.lastMatch + "<br>"); document.write("RegExp.lastParen為" + RegExp.lastParen + "<br>"); document.write("RegExp.leftContext為" + RegExp.leftContext + "<br>"); document.write("RegExp.rightContext為" + RegExp.rightContext + "<br>"); document.write("RegExp.$1為" + RegExp.$1 + "<br>"); document.write("RegExp.$2為" + RegExp.$2 + "<br>"); document.write("RegExp.$3為" + RegExp.$3 + "<br>"); document.write("RegExp.$4為" + RegExp.$4 + "<br>"); document.write("arr.index為" + arr.index + "<br>"); document.write("arr.input為" + arr.input + "<br>"); document.write("arr.lastIndex為" + arr.lastIndex + "<br>"); document.write("返回?cái)?shù)組的元素個(gè)數(shù)為" + arr.length + "<br>"); document.write("返回?cái)?shù)組的內(nèi)容為[]"); for(var i=0; i<arr.length; i++) { if(i < arr.length-1) document.write("" + arr[i] + ""); else document.write(("" + arr[i] + "")+"<p>"); } } </script> </head> <body> </body> </html>
提出するリセットコード
  • おすすめコース
  • コースウェアのダウンロード