web関連

【javascript】正規表現を使って特定の値を取得する方法

見出しタグ(h1など)の数字以外の数字を取得する方法

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

見出しタグの数字を除いた数字を正規表現で取得する方法

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

見出しタグの「h」がつかない数字を取得できれば良かったんだけど正規表現だとできなさそうなので

「h」が前につかない「文字列 + 数字」という形で取得して、sliceで文字列の部分を削除することで見出しタグを除いた数字を取得することを可能にした

解説できるレベルで理解できてないけどとりあえず目的は達成したので備忘録がてら残した
正規表現マジで難しい

調べた理由

for文などのループ処理が使えず、同じコードの数字部分のみ手作業で変更しないといけないのがクソ怠かったので
見出しタグ以外の数字部分は自動で+1される処理を作るために調べた

デモ

※先頭に0ありの「01」みたいな数字では上手く動作しない

Leave a Comment

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

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