JavaScript - 取得字串中的數字

最近在製作一個功能時需要去取得textarea內字串中的數字金額,以便做必要之後續處理。

在此舉一個例子,做簡單之示範。

瀏覽器:Chrome

HTML如下:

  1. <body onload="initialize()">
  2. <textarea cols="100" rows="10" id="showText">
  3. 這次入會總共要繳交會費$2000元及雜費$300元不等
  4. </textarea>
  5. </body>

JavaScript如下:
  1. function initialize(){
  2. showIntFromString(document.getElementById("showText").value);
  3. }
  4. function showIntFromString(text){
  5. var num_g = text.match(/\d+/);
  6. if(num_g != null){
  7. console.log("取出的數字為:"+num_g[0]);
  8. showIntFromString(text.replace(num_g[0], ""));
  9. }else{
  10. return;
  11. }
  12. }

當頁面載入時,確認html已經做初始化,此時呼叫body標籤內的initialize函式

接著,就是利用match method做文字檢索,透過在裡面設定的規則

\d 表示 找尋數字

+ 表示針對該例子至少找出一項符合

如此一來得到的結果為:


另,如果規則設定為 text.match(/\d+/g);

/g 表式設定的Modifiers為global search

那麼一次就可以搜尋出字串中所有符合的數字,不用像上面的例子來做遞迴的搜尋

因此,回傳回來的num_g其length = 2

num_g[0] => 2000

num_g[1] => 300

寫法就更為精簡了!

留言