execは、文字列の方法ではなく正規表現の方法であり、そのパラメーターは以下に示すように文字列です。
var re = new regexp(// d/); re.exec( "abc4def"); //または使用perl style://d/.exec( "abc4def"); //一致は文字列クラスによって提供されるメソッドです。そのパラメーターは正規表現オブジェクトです。次の使用法は正しいです: "abc4def" .match(/d);
execと一致したリターンアレイ
実行メソッドを実行する正規式が(ブラケットなしで)グループ化されていない場合、一致する場合、1つの要素のみの配列を返し、この配列の唯一の要素は正規表現が一致する最初の文字列です。一致がない場合、それはnullを返します。
次の2つのアラート関数ポップアップ情報は同じです。
var str = "cat、hat"; var p =/at/; // G属性アラート(p.exec(str))アラート(str.match(p))はありません
すべてが「at」です。この場合、execは一致するのと同等です。
ただし、正規表現がグローバルに一致している場合(G属性)、上記のコードには異なる結果があります。
var str = "cat、hat"; var p =/at/g; // g属性アラート(p.exec(str))アラート(str.match(p))に注意
彼らです
"で"
「at、at」。
execは常に最初の試合のみを返すため、G属性が定期的に指定されている場合、試合はすべてのマッチを返します。
幹部が一致を見つけてグループを含む場合、返された配列には複数の要素が含まれます。最初の要素は見つかった一致であり、後続の要素は一致の最初の2番目の...グループです(リバースリファレンス)
次のコードが「cat2、at」をポップアップします:
var str = "cat2、hat8"; var p =/c(at)/d/; alert(p.exec(str))
最初の要素は一致する文字列「cat2」であり、その後の要素は、括弧内の「」の一致するものです。
一致関数は次の条件に干渉し、execと同じ関数を実現します。
1。正規表現にはグループ(括弧)が含まれています
2。一意の一致を返します
次のコードを見てみましょう。
var str = "cat2、hat8"; var p =/c(at)/d/; alert(p.exec(str))alert(str.match(p))
メッセージ「cat2、at」がポップアップします。とても奇妙だと思いますか?
要約:
一致はすべての一致する文字列を返す配列ですが、正規表現はすべての一致を返すためにグローバルG属性を指定する必要があります。 G属性が指定されていない場合、1つの要素のみを持つ配列が返されます。
execは常に、最初のマッチ文字列、すべてのパケットへのbackreferenceを含む配列を返す最初の試合に関連する情報を常に返します。
場合によっては、execによって返された結果は、マッチによって返された結果と同じです。
var str = "cat、hat"; var p =/at/; // G属性アラート(p.exec(str))アラート(str.match(p))はありません
「at」がポップアップします
場合によっては、試合で返される結果は、execが返した結果と同じです。
var str = "cat2、hat8"; var p =/c(at)/d/; alert(p.exec(str))alert(str.match(p))
「cat2、at」ポップアップ
上記の記事JavaScriptのexecとMatchメソッドの詳細な分析は、私があなたと共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。