JavaScript 正規表現のヒットするもの全て取得するには?

ショコラ
ショコラ

JavaScript 正規表現のヒットするもの全て取得するには?

正規表現オブジェクトを exec して while で回してマッチしたものを取得します。

もっさん先輩
もっさん先輩

やりたかったことは↓こちら。

let s = '<option value="1">もっさん<option value="2">ショコラ';

//let r = /<option value="(.*?)">([^<]*)/gm;
let r = new RegExp('<option value="(.*?)">([^<]*)','gm');

while (null != (m = r.exec(s))) {
  console.log(m[1],m[2]);
}

JavaScript の正規表現。上と下どちらでもOKです。

//let r = /<option value="(.*?)">([^<]*)/gm;
let r = new RegExp('<option value="(.*?)">([^<]*)','gm');

「?」で最小マッチにしています。

<option value="(.*?)">

正規表現オブジェクトを exec して while で回してマッチしたものを取得します。

while (null !== (m = r.exec(s))) {
  console.log(m[1],m[2]);
}

以上

Scroll to Top