2016-02-11 201 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) ;