JS定期的な機能は、使用を分割し、幹部、テスト、一致して、検索し、交換してください。

製品より転載は少しライブラリです:  http://www.pinlue.com/article/2020/03/0414/149979963427.html

 

試合方法

検索文字列を実行するために正規表現パターンを使用し、検索の結果は配列として返さ含まれています。

stringObj.match(rgExp)

パラメータ

stringObj

必須。そのStringオブジェクトまたはテキスト文字列を検索します。

rgExp

必須。これは、正規表現パターンおよび適用フラグ表現オブジェクト正です。また、変数名や正規表現パターンと該当フラグを含むテキスト文字列を指定できます。

一致が全て一致し、かつないサイクルを表示されるグローバルマークgが一致異なる式であるが、すべてのマッチングサブマッチを含まない場合、残りの命令とexec。

例1:

機能MatchDemo(){VARのR、再; //宣言変数。VAR S =「スペインの雨は主に平野に落ちる」;再= /()内/ IG; //正規表現パターンを作成します。R = s.match(再); //検索文字列に一致するようにしてみてください。(R)のdocument.write; //戻りアレイが表示され、 "AIN" 4つのすべてのマッチングが含まれ、R [0]、R [1]、R [2]、R [3]。//しかし、子が一致しません。}出力:AIN、AIN、AIN、AIN

メソッドのexec

発現パターンは、文字列を検索するために使用され、試合は、nullを返す失敗した場合、検索結果の最初の値(配列)を返しますされています。

rgExp.exec(STR)

パラメータ

rgExp

必須。これは、正規表現パターンおよび適用フラグ正規表現オブジェクトが含まれています。

STR

必須。これではStringオブジェクトまたは文字列リテラルのルックアップを実行します。

配列を返します:

入力:検索文字列全体の値。

インデックス:マッチング位置結果(位置)。

lastInput:次のマッチング結果の位置。

ARR:結果値、ARR [0]マッチ結果は、()内のARR [1,2 ...]部分マッチの発現は.... 1、2のように左から右に、あります

例2:

コードのコードをコピーして、次のとおりです。

機能RegExpTest(){

VARのSRCは= "http://sumsung753.blog.163.com/blog/Iはあなたを愛して!"。

するvar再= / \ W + /グラム; //グラムのノートテキストが今まで戻っのみ最初に一致せずにマッチします。

ARRました。

しばらく((ARR = re.exec(SRC))!= NULL){// execのマッチサイクルタイムが役割gで見直しますながらそう編曲、最初のマッチを返します。

document.write(arr.index + " - " + arr.lastIndex + ":" + ARR + "<BR/>");

{(ARRでキー)のために

document.write(キー+ "=>" + ARR [キー] + "<BR/>")。

}

document.write( "<BR/>");

}

}

window.onload = RegExpTest()。

出力:

0-1:インデックス、私の場所、場所次の試合のためにI // 0

入力=>私はあなたを愛しています!

インデックス=> 0

lastIndexの=> 1

0 => I

2-6:愛

入力=>私はあなたを愛しています!

インデックス=> 2

lastIndexの=> 6

0 =>愛

7-10:あなた

入力=>私はあなたを愛しています!

インデックス=> 7

lastIndexの=> 10

0 =>あなた

注:いない場合は、このようなwhileループの例として、マニュアル、execのリターンのみ最初の試合結果の値を、によると、それは(私はスペースと、表現と一致している愛にもかかわらず)だけ「I」を返します、再表現によってかグローバルマークグラムをなし。グローバルマークgを設定するための正規表現ならばしかし、幹部が示された位置からlastIndexの値を見て始めました。グローバルフラグが設定されていない場合、幹部はlastIndexの値を無視し、文字列の先頭から検索を開始します。あなたが繰り返し試合と同等、すべての試合を通じてのexecを呼び出すことができ、この機能を使用すると、gフラグを持っています。

もちろん、場合には、正規表現のグラムを使用することを忘れ、しかし(例:しばらく、用など)のループで無限ループになり、幹部は常に最初のサイクル、。

出力は、サブexecの試合が含まれています。

例3:

コードのコードをコピーして、次のとおりです。

機能execDemo(){

VaRのR、再; //宣言変数。

VAR S =「スペインの雨は主に平野に落ちます」。

再= / N / IG(AI)* [\ W]。

R = re.exec(S)。

document.write(R + "<BR/>")。

{(R INキー)のために

document.write(キー+ " - " + R [キー] + "<BR/>")。

}

}

window.onload = execDemo()。

出力:

雨、AI

入力-スペインの雨は主に平野に落ちます

インデックス-4

lastIndexの-8

0-雨

1-AI

試験方法

これは、検索文字列が与えられた正規表現にマッチするかを示すブール値を返します。

rgexp.test(STR)

パラメータ

rgexp

必須。これは、正規表現パターンやロゴ利用できる正規表現オブジェクトが含まれています。

STR

必須。その上で検索文字列をテストします。

説明

正規表現パターンのテスト方法をチェックし、指定した文字列が一致するかどうか、それはそうでない場合はfalseを返し、ある場合はtrueを返します。

例4:

コードのコードをコピーして、次のとおりです。

関数TestDemo(RE、S){

s1がありました。

(re.test(S))の場合

S1 =「正規表現にマッチ」。

そうしないと

S1 =「正規表現と一致しません」。

リターン( "" "+ S + """ + S1 + "" "+ re.source + """)。

}

window.onload =のdocument.write(TestDemo(/ AB /、 "CDEF"))。

出力結果:「CDEF」は、正規表現「AB」と一致しません。

注:正規表現のテスト()継承lastIndexプロパティは、試合中に発現グローバルフラグGには留意すべきである場合。

例5:

コードのコードをコピーして、次のとおりです。

機能testDemo(){

VaRのR、再; //宣言変数。

VAR S = "I"。

再= / I / IG; //正規表現パターンを作成します。

document.write(re.test(S)+ "<BR/>"); //ブール結果を返します。

document.write(re.test(S)+ "<BR/>")。

document.write()S(re.test)。

}

testDemo();

出力:

また、第2コールテスト()場合lastIndexの位置1、第失敗一致でマッチポイント、lastIndexのは、再び第三試合に等しい、リダイレクト。次の例が示すlastIndexプロパティ試験:

例6:

コードのコードをコピーして、次のとおりです。

機能testDemo(){

VaRのR、再; //宣言変数。

VAR S = "I"。

再= / I / IG; //正規表現パターンを作成します。

document.write(re.test(S)+ "<BR/>"); //ブール結果を返します。

(re.lastIndexを)のdocument.write; //ブール結果を返します。

}

testDemo();

出力:

1

溶液:それぞれの試験()lastIndexプロパティは0、re.lastIndex = 0をリダイレクト。

検索方法

正規表現検索戻る第一サブストリングマッチング含有量(オフセットビット)の位置。

stringObj.search(rgExp)

パラメータ

stringObj

必須。Stringオブジェクトまたは文字列リテラルでそれを見ていられます。

rgExp

必須。これは、正規表現パターンおよび適用フラグ正規表現オブジェクトが含まれています。

注:あなたが最初のオフセット位置に子文字リターンを見つけた場合、それ以外の場合は-1。

例6:

コードのコードをコピーして、次のとおりです。

機能SearchDemo(){

VaRのR、再; //宣言変数。

VAR S =「スペインの雨は主に平野に落ちます。」;

再= /は、I /落ちる; //正規表現パターンを作成します。

RE2 = /タム/ I;

R = s.search(再); //検索文字列。

R2 = s.search(RE2)。

リターン( "R:" + R + "; R2:" + R2); //ブール結果を返します。

}

document.write(SearchDemo())。

出力:R 18; R:-1

メソッドを置き換えます

返された正規表現の文字の置換をコピーする文字列。

stringObj.replace(rgExp、のreplaceText)

パラメータ

stringObj

必須。交換用のStringオブジェクトまたは文字列リテラルを実行します。文字列は、メソッドを置き換える変更されません。

rgExp

必須。正規表現パターンを持つ正またはロゴは、利用可能な表現オブジェクトです。また、Stringオブジェクトまたはテキストことができます。rgExpない正規表現オブジェクトは、それは文字列と正確な外観に変換されている場合は、正規表現として文字列を変換しようとしないでください。

replaceText

必須。Stringオブジェクトまたはテキスト文字列が含まれているテキストに置き換え対象物の両方で一致する各stringObj rgExp位置のために、です。以降のJscript 5.5以上では、のreplaceTextパラメータも置換テキストを返す関数とすることができます。

説明

結果は、メソッドは、指定されたオブジェクトstringObjの代替の完全なコピーで置き換えます。指定されたアイテムを一致させるための手段は、他のStringObjとして一定として返され、置換されています。

ECMAScriptのV3所定のパラメーター置換交換()メソッドは機能の代わりに、文字列であってもよいです。この場合、関数は、文字列を置換テキストとして使用されます返し、各試合のために呼び出されます。最初のパラメータは、パターン文字列マッチングの関数です。次のパラメータは、パラメータのゼロまたはそれ以上が存在してもよい、文字列とパターンマッチングサブ表現です。次の引数が整数である、位置文は試合stringObjectに表示されます。最後のパラメータはstringObjectそのものです。関数呼び出しの戻り値と一致する対応する文字列値に、各サブ置換文字列の結果。参照としての機能は、より複雑な操作を行うことができます。

例7:

コードのコードをコピーして、次のとおりです。

関数F2C(S){

VARテスト= /(\d+(\.\d*)?)F\b/g; //華氏可能なモードが記述されている:123Fまたは123.4Fを。Gモードとここなお

リターン(s.replace

(テスト、

関数(Regstr、$ 1、$ 2、$ 3、newstrObj){

+($ 1-32)* 1/2)+ "C" + "<BR/>" + "<BR/>" リターン(( "<BR/>" + Regstr + //次の2行を置き換えます

$ 2 + "<BR/>" + $ 3 + "<BR/>" + newstrObj + "<BR/>");

}

);

}

document.write(F2C( "水:32.2Fとオイル:20.30F。"));

出力:

水://は、元の文字出力に応じて、通常の文字と一致しません。

元の文字列Regstr 32.2F //最初の文字列は、正規にマッチ

代わりになる0.10000000000000142C //最初のサブパターンの最初の文字列は、通常のマッチング$ 1と一致します

0.2 //第2のサブ文字列の規則的なパターンを置換した結果と一致一致し、ここでは$ 2で、それに代わるものではありません。

7 //最初の文字列を発生最初のサブオフセットマッチは、通常の$にマッチ3

水:32.2Fとオイル:. 20.30F //元の文字列newstrObj

そしてオイル://文字は、正規と一致しません

通常の2番目の文字列にマッチし20.30F //元の文字列

あるいは正規-5.85Cの最初のサブパターンマッチング結果は、// 2番目の文字列にマッチします

0.30第2のサブパターンマッチングの2番目の文字列の//通常の試合結果項目を置き換える、ここで我々はそれに代わるものではありません。

最初のサブマッチが発生//通常の2番目の文字列に一致するように22をオフセット

水:32.2Fとオイル:. 20.30F //元の文字列

//通常の文字と一致していません

我々が使用されるすべての上記の引数。実際には、我々は唯一のXXCは、要求に応じて、我々は非常に多くのパラメータを記述する必要はありません置き換えxxFを使用しています。

例8:

コードのコードをコピーして、次のとおりです。

関数F2C(S){

VARテスト= /(\d+(\.\d*)?)F\b/g; //華氏可能なモードが記述されている:123F 123.4Fか

リターン(s.replace

(テスト、

関数(strObj、$ 1){

リターン((($ 1-32)* 1/2)+ "C");

}

);

}

document.write(F2C( "水:32.2Fとオイル:20.30F。"));

出力:水:0.10000000000000142Cとオイル:-5.85C。

その他の用途:

例9:

コードのコードをコピーして、次のとおりです。

関数F2C(S){

VARテスト= /([\ D] {4}) - ([\ D] {1,2}) - ([\ D] {1,2})/。

リターン(s.replace

(テスト、

関数($ 0、$ 1、$ 2、$ 3){

リターン($ 2 + "/" + $ 1);

}

);

}

document.write(F2C( "今日:2011-03-29"));

出力:今日:03/2011

分割方法

ストリングは、サブストリングに分割し、次に文字列の配列として結果を返しています。

stringObj.split([セパレータ[リミット]])

パラメータ

stringObj

必須。Stringオブジェクトまたはテキストが分解されます。オブジェクトは、分割方法を変更されません。

分離機

オプション。文字列またはパーティション列を識別する正規表現オブジェクトは、一つまたは複数の文字のために使用されます。省略された場合、文字列全体を含む単一要素の配列を返します。

限定

オプション。この値は、返される配列内の要素の数を制限するために使用されます。

説明

結果の分割方法は、文字列配列であり、セパレータのstingObj分解が発生し、各位置で行われるべきです。任意セパレータ配列要素戻り部分はありません。

例10:

コードのコードをコピーして、次のとおりです。

機能SplitDemo(){

VAR S、SS。

VAR S =「スペインの雨は主に平野に落ちます。」;

大型で区切ら//正規表現は、関係なく、秒の書き込みはありません。

SS = s.split(/ S / I)。

(SS)を返します。

}

document.write(SplitDemo())。

输出:主に平野の痛みの秋、雨、。

JSは、exec()メソッド、一致()メソッド、およびsearch()メソッドのregexで

コードを見てください:

VaRのsToMatch = "テスト、TES、TST、TSET、テスト、Tesyt、STES"。

VAR REESは= / / GIです。

警告(reEs.exec(sToMatch));

警告(sToMatch.match(リース));

警告(sToMatch.search(リース));

三ポップアップボックス次のように:

 

 

結果は以下のように分析されています。

図1に示すように、正規表現のexec()メソッドは、文字列引数及び戻りアレイは、アレイ内の最初のエントリは、最初の一致であり、他は、逆参照です。したがって、第1の結果は、最初に一致した値ES(ケース小文字を区別しない)を返します。

図2に示すように、文字列オブジェクトは、文字列に含まれるすべてのマッチングデータを返す一致()メソッドを有します。このメソッドは、文字列オブジェクトと呼ばれ、それにRegExpオブジェクトを渡しています。第二のポップアップステートメントは、行の正規表現のすべての配列を返すようにします。

図3は、のindexOf文字列で検索()メソッド()多少類似し、それは単にストリングではなく、RegExpオブジェクトを使用します。search()メソッドは、最初に一致した位置の値を返します。だから、ポップアップ三位は、第二の文字に一致するようになる、「1」です。検索()メソッドは、(パラメータgを有する)グローバルな正規表現の一致をサポートしていないことに注意してください。

公開された60元の記事 ウォン称賛52 ビュー110 000 +

おすすめ

転載: blog.csdn.net/yihuliunian/article/details/104664071