web関連

【javascript】正規表現を使って「見出しタグ」以外の数字を取得する方法

「見出しタグ(h1など)」部分以外の数字を取得したかった時の備忘録

「見出しタグ」以外の数字を取得する方法

見出しタグ(<h~>)」以外の数字を正規表現で取得する。

let string = "<h2>私がNo.1だ!</h2>";
// 見出しタグの「<h」「</h」が前にない数字を取得
let response = string.match(/(?<!<h|<\/h)[0-9][0-9]?/g);
console.log(response);// 出力結果:「1」

上記コードは、数字の前に見出し開始タグ「<h」と閉じタグ<h/の文字列があった場合は除外して、そのほかの数字を取得している。以下、コード解説。

  • (?<!<h|<\/h)…見出し開始タグ「<h」と閉じタグ<h/以外を指定
  • [0-9][0-9]?…1桁または2桁の数字どちらかとマッチ
    ※「?」が無いと2桁の数字とマッチしようとする
  • gオプション…マッチするのがあれば全部取得
    gが無いと1つマッチしたら終了

参考:
正規表現構文早見表

【調べた理由】見出し以外の数字を「+1」するジェネレータが欲しかった

PHP使用不可の案件で、同じコードをコピペして「class部分の数字」のみを手動で「+1」する必要があった時、面倒だったのでジェネレータを作ろうと調べた。
以下は、「見出しタグ」を除いた数値部分に自動で「+1」してくれるジェネレータ。
※先頭に0ありの「01」非対応
※「100」などの3桁には非対応

See the Pen
【javascript】数値に+1するジェネレータ
by twotone (@twotone-me)
on CodePen.

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。