定期的に何ですか?
正規表現(正規表現)は、ルールの対象文字の記述です。条件等の文字列から置換される文字または削除マッチ部分文字列を含む文字列かどうかをチェックするために使用することができます。
正規表現:
正規表現は、実際には、正規表現のルールがより適切と呼ばれ、実際にルールです。古代perlの言語に基づいて定期的な文法。
なぜ正規表現を使うのか?
私たちは、正規表現を学ぶ理由は、目的は、私たちはすぐに文字列に一致するように支援することです、非常に簡単です。
私たちは、単に味に次のコードを使用することができます。
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <METAのcharset = "UTF-8"> <タイトル>の正規正当化表現を使用して</ TITLE> </ HEAD> <BODY> </ BODY> <スクリプト> // たとえば、私たちは今の中から、デジタルの文字列を、このような要望を持っているVAR STR = "12は、ABC、ADMIN-root30369、.....、90である" ; //は空の配列を作成します。VAR ARR = []; VAR TMP = '' ; // オープンループ処理データのための(VaRは I 0 =; I <str.length; I ++ ){ //を決定するデジタルの文字列の内容かどうかのiF(str.charAt (I)> = '0' && str.charAt(I)<= '9' ){ TMP + = str.charAt(I); } 他{ 場合(TMP){ arr.push(TMP)。 TMP = '' ; } } } // 打印 にconsole.log(ARR)。 </スクリプト> </ HTML>
通常の方法を見て:
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <METAのcharset = "UTF-8"> <タイトル>のn数のうち文字列であるを通じてフェッチ</ TITLE> </ HEAD> <BODY> </ BODY> <SCRIPT> VARの STR = "12、... 90、ABC、ADMIN-root30369、ある" ; VAR N- = / \ + D / G; はconsole.log(str.match(N))</スクリプト> </ HTML>
emmmmmmmmmmmmmmmmので、あなたは、まあ、誰の使用を言います
正規表現を作成する方法
<スクリプト> // 3通りの方法で正規表現を定義します。 VAR RE1 = / ABC /; //は、通常の2つのスラッシュのコンテンツの形態である直接金額から直接、定期的に最も簡単な方法を定義します。.. VAR = RE2 新しい新しい正規表現(/ ABC /); //は、正規の第2の形態を定義する、以下の文言に変更してもよい のvar = re2_two 新しい新しい正規表現(「ABC」); // 上記文言と同等 VAR RE3 =正規表現( 「こんにちは」); // 通常の伝達関数が作成された使用 </ SCRIPT>
上記のコードでは、私たちは三つの形式は、正規表現によって作成された持ち、どんなにはどちらの側から、最初の文言を使用することをお勧めします。
文字列.replace(oldstr、NewStrによってすでに)関数と文字列.match(通常の)機能
ファンクション文字列は、機能を置き換える:新しい文字列に古い文字列を置換します
この機能を使用することができ、古い文字列が正規表現、置換文字列として表現しました
以下のような:通常のグラム、唯一の交換、続いていない場合は文字列abcは「ヘクタール」に置き換え、私は、キャップが交換されることはありませんされていない場合
するvar strが=「abc123abc456abbcdABCefaacbcdbcabc "。
VAR REG = / ABC / G;
console.log(str.replace(REG、 "哈哈"));
ファンクション文字列一致機能:あなたが望むすべてのものを抽出
これは、すべての適格の文字を含む配列を返します。
\ Dは、すべての数字が一致します
VAR REG = / \ D / G;
console.log(str.match(REG))//印刷文字列のすべてのデジタル
+番号、数量詞は、どのように多くの缶、少なくとも一つのキャップされていないを示しています
VAR REG = / \ D + /グラム;
console.log(str.match(REG))//印刷文字列のすべての数字、連続
|または、中のjsよう||
BBC | | CBC | = / ABCのvar REG DBC /グラム
console.log(str.match(REG)); //印刷文字列abc、BBC、CBC、DBC
VaRのREG = / [AC] BC / G
[]シンボルメタ
VaRのREG = / [AZ] / //一致するすべての文字
[0-9] == \ dは
^除外(除きます)
VAR REG = / [^ 0-9] / //がすべての数字を除いを表し
すべての代表は、推奨されません
REG = /<.+>/gました
console.log(str.replace(REG、 ""))//フィルタは、角括弧は、しかし、内部の事はない表しますか?
定期的な貪欲法:
VAR REG = / <[^ <>] +> / G
console.log(str.replace(REG、 ""))//内部の角括弧が示すものは本当にありません
エスケープ文字:
\ D - [0-9]デジタル
\ W - [-Z0-9_]数字、文字、下線
\ S - 空白文字(スペース)
\ D - [^ 0-9]非数値
\ W - [^-Z0-9_]非数値、アルファベット、アンダースコア
\ S - 非空白文字
数量詞:修飾子は、あなたが与えられたグループの正規表現を指定することができ、何回試合を満たすために行わなければなりません
*前の部分式の0回以上にマッチ
+少なくとも1回以上の部分式マッチを先行
?前のサブ表現のゼロまたは1時間にマッチ
一致判定{n}はn回
{N}少なくとも一致n回
m回までの一致{N、M}少なくとも一致n回
本手
正規.TEST(文字列)、戻り値はtrueとfalseです
正規.TEST(文字列)は、長い文字列の一部として要件を満たすためにと、ある特性を持っている、それはtrueを返します
ソリューション:
^ [スタート]
$終了
//は:通常の使用 // メソッド使用して 、//を自ら定期: // reg.test(STR);検証 // reg.exec(STR);検索 // 文字方式: // str.match(REG) ;検索 // str.replace(REG、NewStrによってすでに);代替 // str.search(REG)検索
EXEC()は、検索の配列を返すリターンヌルで見つけることができません
テストの特徴:限り、通常の文字の遵守の検証の特定の部分に該当するとして、検証、ローカルで検証、
// QQ番号:テンセント // VAR STR = "704 206 198"; // VAR REG = / ^ [1-9] \ {D} $ 5,11 /; // はconsole.log(reg.test(STR)) ; // ZIP // VAR STR = "152 100"; // VAR REG = / ^ \ 6 {D} $ /; // はconsole.log()STR(reg.test); // 固定電話 // VAR = STR "0504-59271632-123"; // VAR STR = "0504-59271632"; // VAR STR = "59721632"; // するvar STR = "59721632から123"; // VAR REG = / ^(0 \ D {2,3} - )[1-9] \ D} {6,7は、( - \ D {1,4})$ /; ?? // はconsole.log(reg.test(STR))。 // 複雑なメールボックス //VaRのSTR = "[email protected]"。 // VAR REG = /^\w{1,10}@[0-9a-z]{2,10}(\.[az]{2,3}){1,2}$/。 // にconsole.log(reg.test(STR)); // URL // VAR STR = "https://baidu.com"。 // するvar strの= "http://www.baidu.com"。 // するvar strの= "www.baidu.com"。 // するvar strの= "mp3.baidu.com"。 // VAR STR = "baidu.com.cn"。 // VAR REG = / ^(HTTPS:\ / \ /)?([0-9A-Z] {1,10} \。)[0-9A-Z] {2,10}(\ [?。 AZ] {2,3}){1,2} $ /。 // にconsole.log(reg.test(STR));
正規表現のマニュアル
従来の検出方法:
1 。中国の検出 Unicodeは中国の監視をコード: / ^ [\ u2E80- \ u9FFF] + $ / 2 名検出。 レギュラー: / ^ [A-Z0-9 _-] {3,16} $ / 3 。メールボックスは、検出しました / ^([-Z0-9 _ \ .-] +)@([\ DA-Z \ .-] +)\。([AZ \。] {2,6})$ / 複数回現れることができる(英数字下線。 - )複数@(英数字.-起こり得る).2 6または文字を。 /^[az\d]+(\.[az\d]+)*@([\da-z] ?( - [\ DA-Z ]))+(\ {1,2} [AZ] +)+ $ / フリー(S(英数字の複数を有していてもよい)、英数字(複数を有していてもよいです) )、複数であってもよい@(英数字ない1(存在しないかもしれない - 英数字)))は、1つ以上の二文字以上(複数を有していてもよい。 [email protected] 4。.URL検出 / ^(HTTPS:\? /\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w\.-]*)*\/?$/ HAVE 1又は0回(1又は0 Sを持つHTTP回://は)複数(英数字.-)2-6であってもよい0 /することができる0以上(または複数であってもよい(文字)。英数字下線.-)0であってもよく、または1 / HTTP:// sh.op-ta.l.baidu.com 5 .HTMLラベル検出 ?。/ ^ <([AZ ] +)([^ <] +)*(:>(*)<\ / \ 1> | \ S + \ />)$ / <複数(文字)、または<)/以外は0(すべての複数の文字であってもよい> <複数(文字)、または<)>マルチ除く0(すべての複数の文字であってもよいです任意の文字</最初の文字の複数の反復部分> カスタムHTMLタグ / <[^ <>] + > / G