-1

プレースホルダーを検索して正規表現を文字列に適用しようとしていますが、結果が完全一致のみであり、キャプチャ グループではない理由がわかりません。

//----HTML------------------------//    
<p>Let's try plaintext.<br/>
bommdidumpidudidoo</p>

<p id="output"></p>

//----JS------------------------//    
var s = $('p').html();
var matches = s.match( /.*(plaintext)/g );

write(matches);
write(matches[0]);
write(matches[1]);



//------- whatever -------//
function write(s) {
    $('#output').html( $('#output').html() +'<br/>'+s );
}

// output:
// Let's try plaintext
// Let's try plaintext
// undefined

»フィドル(代わりに
カスタム関数を使用して、結果がフィドルに表示されるようにしました)writeconsole.log

3 行目が定義されていないのはなぜですか? 理解できない!

表現は正しい思います。.match()これが JavaScript の正しいキャプチャ グループ構文であり、最初に完全一致、次にすべてのキャプチャ グループを含む配列を返すことは 1oo% 確信しています。regex101.com でテストしたこともあります。あちらでは、キャプチャ グループを取得しています。

この他の問題と同じではありません。なぜなら、OR ロジックが問題の核心であり、ここではパイプ|さえ出てこないからです。

4

1 に答える 1

0

うおお!gこれは、修飾子を使用してグローバル検索を行っているためです。その修飾子を削除すると、期待どおりの結果が得られます。Tss。

最初にその修飾子を使用して複数のプレースホルダーを取得しましたが、まだそのようなものを while ループできると思います …</p>

于 2015-11-14T19:40:19.540 に答える