2015-02-09 72 views
1

我想分割字符串"1 + 2/3 * 4 - 5 "以顯示"+" "/" "*" "-"以將其保存到數組中,以便與數字相同,以便我將每個數字和op調用到函數中以計算它在BODMAS (/*+-)的順序。在JavaScript中分割此字符串

字符串可以更長更短,因爲它是用戶輸入計算。

<p id="demo"></p> 
<script> 
    function myFunction() { 
     var str = "1+2/3*4-5"; 
     var res = str.split([0-9]); 
     document.getElementById("demo").innerHTML = res; 
    } 
</script> 
+6

什麼是你的問題? – 2015-02-09 21:49:31

+1

你可能想要一個正則表達式,那些通常以'/'開頭和結尾的 – adeneo 2015-02-09 21:50:19

+0

http://jsfiddle.net/9k9v09ds/ – adeneo 2015-02-09 21:51:14

回答

0

你從沒叫過的myFunction功能。在前面使用非加工字符,[^0-9]。它將匹配任何不是數字的東西。請勿使用splitsplit不識別[0-9]作爲分割字符。改爲使用string.prototype.match()方法。它將返回一個包含每個匹配的數組。

function myFunction() { 
 
     var str = "1+2/3*4-5"; 
 
\t \t var match=str.match(/[^0-9]+/g); 
 
     
 
     for(i=0;i<match.length;i++){ 
 
\t  document.getElementById('demo').innerHTML+=match[i]+'</br>'; 
 
\t } 
 
    } 
 
\t myFunction();
<p id="demo"></p>

+0

非常感謝:D – Rach 2015-02-09 22:19:37

2

你做:

str.split(/\d+/) 

得到符號和

str.split(/\D+/) 

得到的數字