正規表現の本体。
正規表現では特殊記号が使用されます。以下に、さまざまな記号、その意味、使用法を簡単に紹介します (注: 「X 以降には X が含まれます」)。
/ は、それに続くテキストが特殊記号であることを示します。例: 「n」と「n」は一致します。 「/n」は改行文字と同じです。
^ は入力の先頭と一致します。
$ は入力の末尾と一致します。
※この記号より前の文字が0回以上同じ場合は一致しています。例: 「zo*」は「zoo」および「z」と一致します。
+ この記号の前の文字が複数回同じ場合、それらは一貫しています。例: 「zo*」は「zoo」と一致しますが、「z」とは一致しません。
? この記号の前の文字が 0 回または 1 回同じであれば、それらは一致しています。例: 「a?ve?」は「never」の「ve」と一致します。
. 改行を除くすべての単一リテラルと一致します。
(正規表現) 指定した式を使用して一致するテキストを検索します。見つかった場合は保存してください。一貫した部分は次から取得できます。
Match メソッドで取得した配列内で見つかりました。
x|yx と y のいずれかが同じである場合、それは一貫しているとみなされます。例: 「(z|f)ood」は「zood」および「food」と一致します。
{n} n は 0 より大きい整数です。前のテキストと n 回同じであれば、その 2 つは一致します。例: 「o{2}」と「Bob」の「o」は異なります
「foooood」の最初の 2 つの「o」と一致します。
{n,} n は 0 より大きい整数です。前のテキストと少なくとも n 回一致している必要があります。
{n,m} 両方とも整数。 n から m の範囲の次数は一貫しています。
[xyz] は、角かっこ内のいずれかの文字と同じである場合、一貫性があるとみなされます。
[^xyz] は上記の逆です。
[az] 「a」から「z」までの文字の範囲は一貫しているとみなされます。
[^az] 上記とは逆です。
/b は単語の終わりを示します。例: 「er/b」は「never」の「er」と一致しますが、「動詞」の「er」とは一致しません。
/B は単語以外の終わりを示します。
/dは数値を表します。
/D は数値ではないことを意味します。
/sはスペースを意味します。
/S は非スペースを意味します。
/w はすべての英数字を意味します。
/W は、すべての英数字を意味するわけではありません。
i (大文字と小文字を区別しない)
g (全文で出現するパターンをすべて検索)
gi (全文検索、大文字小文字を無視)
/num num には正の数値を割り当てる必要があります。すでに保存されている部分と比較します。例: 「(.)/1」は、連続する 2 つのものと同じです
文章は一貫している。
2. 文の本文を定義する方法:
方法 1: 直接書き込む
var s=/正規表現/i または g または ig
方法 2: オブジェクト インスタンスを作成します。
var s=new RegExp(正規表現、i または g または ig)
正規表現に関連する 3 つの方法:
1 実行メソッド
説明: 指定したテキスト行内を検索します。
構造: 正規表現.exec(文字列)。
説明: 検索により次の結果が返されます。
null は取得されません。
一貫した結果が取得された後。
例:
コードスニペットは次のとおりです。
<スクリプト>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('g','i');
var a=r.exec(s);
アラート(a);
</script>
2 コンパイル方法:
説明: 正規表現の内部形式を変更します。
構造: 正規表現.compile('text','g または i または ig')。
コメント: あまり言うことはありません。
例:
コードスニペットは次のとおりです。
<スクリプト>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
var a=s.match(r);
アラート(a);
r.compile('[az]','g');
var a=s.match(r);
アラート(a);
</script>
3 テスト方法:
説明: 名前が示すように、クイズに答えます。
構造: 正規表現.test(文字列)。
解説: 戻る:
false が見つかりません。
真が見つかりました。
例:
コードスニペットは次のとおりです。
<スクリプト>
var re=/re/g;
var msg='戻る';
var msg1='グーン';
アラート(re.test(msg));
アラート(re.test(msg1));
</script>
4 置換メソッド:
説明: 一貫性のあるものを見つけて置き換えます。
構造: string.replace (正規表現、置換文字列)。
説明: 文字列は変更されず、そのコピーが返されます。
例:
コードスニペットは次のとおりです。
<スクリプト>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
var a=s.replace(/[az]/g,'A');
アラート(a);
</script>
5 マッチ方法:
説明: 検索を実行します。
構造: string.match (正規表現)。
説明: シーケンスを返します。
例:
コードスニペットは次のとおりです。
<スクリプト>
var re=/re/g;
var msg='レレレレ';
var msg1='グーン';
アラート(msg.match(re));
アラート(msg1.match(re));
</script>
6分割方式:
説明: 文字列を分割します。
構造: String.split (正規表現)。
説明: シーケンスを返します。
例:
コードスニペットは次のとおりです。
<スクリプト>
var s="こんにちは、この良い世界";
var p=//s/g;
var a=s.split(p);
アラート(a);
</script>
7 検索方法:
説明: 一貫した文字列の位置を返します。 (これは、indexOf よりもはるかに多用途です!)
構造: string.search(正規表現)。
解説: 戻る
見つかった場合は正の整数
見つからない場合は -1
例:
コードスニペットは次のとおりです。
<スクリプト>
var s="こんにちは、この良い世界";
var p=/good/g;
var a=s.search(p);
アラート(a);
</script>
replace メソッドの例を次のように変更します。
コードスニペットは次のとおりです。
<スクリプト>
var s="hellOSCF";
var r=new RegExp("[AZ]","g");
s=s.replace(r,"a");
アラート
</script>
最後に、彼のさまざまな属性があります
1 つの lastIndex 属性:
説明: 検索の開始位置を設定し、その値を取得します。
構造: 正規表現.lastIndex(=値)。
解説:
lastIndex が取得したテキストの長さより大きい場合、test メソッドまたは exec メソッドを使用して実行すると、実行は失敗します。
lastIndex プロパティは 0 に設定されます。
lastIndex が検索テキスト長と等しい場合、式本体が空の場合、それ以外の場合は一致します。
実行に失敗し、0にリセットされました。
上記以外の場合、lastIndex は最後に一貫したテキスト文字列の位置ポインタに設定されます。
2 ソース属性
説明: 正規表現のテキストを返します。
構造: 正規表現.ソース
例:
コードスニペットは次のとおりです。
<スクリプト>
var s=/[az]{3}/W/s/g;
var s1=new RegExp("[az]{3}/W","g");
アラート(ソース);
アラート(s1.source);
</script>
以下にいくつかの文字処理関数を書き出します。
1 数字は厳禁です
コードスニペットは次のとおりです。
関数チェック(msg){
var exe=//d/g;
if(exe.test(msg))return(0);
それ以外の場合は return(1)
}
2文字のみ
コードスニペットは次のとおりです。
関数チェック(msg){
var exe=//W/g;
if(exe.test(msg))return(0);
それ以外の場合は return(1);
}
3 禁止コード
コードスニペットは次のとおりです。
関数チェック(msg){
var exe=/<(/w|/W)*>/g;
if(exe.test(msg))return(0);
それ以外の場合は return(1);