JavaScript - 取得字串中的數字

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

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

瀏覽器:Chrome

HTML如下:

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

JavaScript如下:
function initialize(){
   showIntFromString(document.getElementById("showText").value);
}

function showIntFromString(text){
   var num_g = text.match(/\d+/);
   if(num_g != null){
      console.log("取出的數字為:"+num_g[0]);
      showIntFromString(text.replace(num_g[0], ""));
   }else{
      return; 
   }
}

當頁面載入時,確認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

寫法就更為精簡了!

留言