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.