- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現 数値 lastMatch)
JavaScriptの正規表現を使って文字列から最後にマッチした数値を取得する方法
このQ&Aのポイント
- JavaScriptの正規表現を使って、与えられた文字列を1行ずつ分割し、最後にマッチした数値を取得する方法をご紹介します。
- 具体的な処理としては、与えられた文字列を改行で分割し、各行の中から数値の部分を見つけて取得します。
- ただし、現在のコードでは全ての行から最初にマッチした数値を取得しているため、最後にマッチした数値を取得するための修正が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
arr[i].match(/[0-9]+/);とgが最後についていないので、最初にマッチしたら終わってますよね。 arr[i].match(/[0-9]+/g);と書いたら期待した動作をするのでは?
その他の回答 (1)
- babu_baboo
- ベストアンサー率51% (268/525)
回答No.2
ちょっと ねぼけてるかも? ぜんかくくうはくは、はんかくにして。 どこかに ねんれいがないと ちがいがわかる function getAge (str) { var reg = new RegExp ('\\((\\d+)\\)$', 'gm'); var ary = []; var num; while (num = reg.exec (str)) ary.push (parseInt (num[1])); return ary; } //#Array.map function getAge2 (str) { return str.split (/\r\n|\r|\n/g).map (function (dat) { var m = /\((\d+)\)$/.exec (dat); return m ? parseInt (m[1]): null; }); } var str = ["1: か(1)おり(23)", "2: 景子 (59)", "n3: さとみ(6)"].join ("\n"); var rst = getAge (str); //getAge2 (str) alert(rst);
お礼
ご回答ありがとうございます。 ご指摘いただいた通りでした。 ありがとうございました。