プレースホルダーを検索して正規表現を文字列に適用しようとしていますが、結果が完全一致のみであり、キャプチャ グループではない理由がわかりません。
//----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
»フィドル(代わりに
カスタム関数を使用して、結果がフィドルに表示されるようにしました)write
console.log
3 行目が定義されていないのはなぜですか? 理解できない!
表現は正しいと思います。.match()
これが JavaScript の正しいキャプチャ グループ構文であり、最初に完全一致、次にすべてのキャプチャ グループを含む配列を返すことは 1oo% 確信しています。regex101.com でテストしたこともあります。あちらでは、キャプチャ グループを取得しています。
この他の問題と同じではありません。なぜなら、OR ロジックが問題の核心であり、ここではパイプ|
さえ出てこないからです。