1:正規表現を作成する方法
1。テキスト形式、使用方法は次のとおりです。
/パターン/フラグ(IE:/モード/マーク)
2.Regexpコンストラクター、使用方法は次のとおりです。
new regexp( "pattern" [、 "flags"])(ie:new regexp( "pattern" [、 "mark"]))))
パラメーター:
パターン:正規表現を表すテキスト
フラグ(タグ):このアイテムを指定する場合、フラグは次のいずれかになります。
G:グローバルマッチ(フルマッチ)
I:ケースを無視する(ケースを無視)
GI:グローバルマッチと無視ケースの両方(すべての可能な値に一致し、ケースを無視します)
注:引用符を使用してテキスト形式でパラメーターをマークしないでください。また、Quotesを使用してErgouジェネレーター関数のパラメーターをマークしないでください。したがって、次の式
同等です:
/ab+c/i ========================== new regexp( "ab+c"、 "i")
説明する:
コンストラクター関数を使用して正規表現を作成する場合、ルールを回避するために通常の文字列を使用する必要があります(主要な文字/文字列に含まれる)。
たとえば、次の2つのステートメントは同等です。
re = new regexp( "// w+");
re = // w+/
注:Regexpにはプリセット$属性があります
1ドル、...、9ドルの属性
括弧内に囲まれたサブストリングを一致させます。
それはregexpの特性です
静的、読み取り専用
JavaScript 1.2、NES 3.0以上で提供されています
説明:入力は静的プロパティであり、個々の正規表現オブジェクトの属性ではないためです。 regexp.inputを使用してこれにアクセスできます
財産。
括弧付きのサブストリングの数は制限されませんが、正規表現オブジェクトは最後の9を保持することができます。
括弧内の一致する文字列は、返された配列を使用できます。
<!doctype html public " - // w3c // dtd html 4.0 transitional // en"> <html> <head> <title> new Document> new Document </title> <script Language = "Javascript1.2"> var regexp = new regexp( "(// w+)// s(// w+)"); str = "ジョン・スミス";新聞= str.replace(regexp、 "$ 2"); newsstr2 = str.replace(regexp、 "$ 1"); document.write( "original string:"+str+"<br/>"); document.write(newtr+"<br/>"); document.write(newtr2+"<br/>"); document.write( '$ 1 ='+regexp。$ 1+"$ 2 ="+regexp。$ 2); </script> </head> <body> </body> </html>
2:Match()メソッドは、文字列内の指定された値を取得したり、1つ以上の正規表現の一致を見つけることができます。文字列の位置ではなく、指定された値を返します。
文法
stringobject.match(searchValue)
StringObject.match(regexp)パラメーターの説明
SearchValueが必要です。取得する文字列値を指定します。
regexpが必要です。一致するパターンを指定するregexpオブジェクト。パラメーターがregexpオブジェクトでない場合は、最初にregexpコンストラクターに渡して、regexpオブジェクトに変換する必要があります。
返品値
一致する結果アレイを保存します。この配列の内容は、regexpがグローバルフラグgを持っているかどうかに依存します。
説明します
Match()メソッドは、文字列StringObjectを取得して、1つ以上のテキストマッチングRegexpを見つけます。この方法の動作は、regexpにフラグgがあるかどうかに大きく依存します。
RegexpにフラグGがない場合、Match()メソッドはStringObjectで一致することのみを実行できます。一致するテキストが見つからない場合、match()はnullを返します。それ以外の場合、見つけた一致するテキストに関する情報を保存する配列を返します。
一致の使用例:
<!doctype html public " - // w3c // dtd html 4.0 transitional // en"> <html> <head> <title> new Document> new Document </title> <script Language = "Javascript1.2"> var str = "1 plus 2 Equal 3"; var str2 = "11/23/55"; var results = str.match(new regexp( "// d+"、 "gi")); for(var i = 0; i <results.length; i ++){document.write(results [i]+"<br/>"); } var res = str2.match(new regexp( "(// d // d?)/(// d // d?)/(// d // d)")); if(str2.length == res [0] .length){document.write(res [1]+"<br/>"); document.write(res [2]+"<br/>"); document.write(res [3]+"<br/>"); } </script> </head> <body> </body> </html> function datecheck(value){re = new regexp( "(// d // d?)/(// d // d?)/(// d // d // d)"); var result = value.match(re); if(result){if(result [0] .length!= value.length){alert( "誤った日付形式。正しい形式はmm/dd/yy。")falseを返します。 } else {var t = result [3]; var y = parseint( "20" + t); var m = parseint(result [1]、10)-1; var day = parseint(result [2]、10); var d = new Date(y、m、day); if(d.getForear()!= y || d.getmonth()!= m || d.getDate()!= day){alert( "error date!")return false; } else {var sm = result [1] .length == 1? '0' + result [1]:result [1]; var sday = result [2] .length == 1? '0' + result [2]:result [2]; var sy = result [3];それ以外の場合は、sm + '/' + sday + '/' + syを返します。 }}} else {alert( "間違った日付形式。正しい形式はmm/dd/yy。"); falseを返します。 }}