私はこの正規表現を返そうとしていますが、返されるだけです"flies a"
s = 'test <!-- flies are little birds --> end';
alert(s.match(/f(.*)a/));
なぜこれが戻るのですか
flies a
lies
f と a を必須にする方法を教えてください。
ありがとうございました
私はこの正規表現を返そうとしていますが、返されるだけです"flies a"
s = 'test <!-- flies are little birds --> end';
alert(s.match(/f(.*)a/));
なぜこれが戻るのですか
flies a
lies
f と a を必須にする方法を教えてください。
ありがとうございました
.match
配列を返します。最初の要素は一致したテキスト全体であり、他の各要素はキャプチャ グループのコンテンツです。キャプチャ グループは 1 つなので、2 番目の要素はそれによってキャプチャされたテキストです。
グループを削除するか、配列内の他の要素を無視してください。いずれにせよ、最初のものにアクセスする必要があります。
var match = s.match(/f(.*)a/)[0]; // or /f.*a/
PS:alert
は悪いデバッグ ツールです。代わりにconsole.log
orを使用してください。console.dir
括弧に入れないでください。
alert(s.match(/f.*a/));
ブラケットはキャプチャ グループを作成します。これにより、一致の特定の部分に関心があることを指定できます。この場合、全体に関心があるので、括弧は必要ありません。
括弧を削除するか、式全体を追加の括弧に入れるだけです。
s.match(/f.*a/)[0];
また
s.match(/(f(.*)a)/)[1];