2016-02-11 15 views
2

儘管我已經看到類似的問題沒有任何答案,但爲什麼這種方式不起作用,而我並不知道另一種方法。在AngularJS中替換字符串中的字符

我正在製作一個非常簡單的計算器,當從字符串中提取表達式時,我需要用由eval識別的運算符替換「×」和「÷」等符號。

目前我試圖通過字符串一個字符在一次,並將其複製到一個新的字符串,取代在必要的地方。似乎沒有任何檢查字符串中的字符的if語句被調用,我不知道爲什麼。

for (var i = 0; i < (expressionPre.length) ; i++) { 
    alert(expressionPre[i]); 
    if (expressionPre[i] == "÷") { 
     expressionPost += "/"; 
    } else if (expressionPre[i] === '×') { 
     expressionPost += "*"; 
     alert("Finally!"); 
    } else if (expressionPre[i] == "−") { 
     expressionPost += "-"; 
    } else if (expressionPre[i] % 1 == 0) { 
     expressionPost += expressionPre[i]; 
    } 
    alert(expressionPost[i]); 
} 
+0

替換文本的所有occurence爲什麼不能用簡單的[替換]功能(http://www.w3schools.com/jsref/jsref_replace.asp )function:'var expressionPost = expressionPre.replace(「÷」,「/」);'? – beaver

回答

2

as @beaver說,你應該直接使用替換函數。 這是誰用另一條

\t function tools_replaceAll(str, find, replace) { 
 
\t return str.replace(new RegExp(find, 'g'), replace); 
 
\t } 
 
\t var str = "(1 ÷ 2 ÷ 2) × 3 × 3 − 4− 4 + 5 + 5"; 
 
\t str = tools_replaceAll(str, "÷" , "/") ; 
 
\t str = tools_replaceAll(str, "×" , "*") ; 
 
\t str = tools_replaceAll(str, "-" , "-") ; 
 
\t alert( str) ;