虽然我见过类似的问题,但没有完全回答为什么这不起作用,而且我不知道还有其他选择。
我正在制作一个非常简单的计算器,当从字符串中提取表达式时,我需要用 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]);
}
最佳答案
正如@beaver所说,你应该直接使用replace函数。 这是一个将所有出现的文本替换为另一个文本的函数
function tools_replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
var str = "(1 ÷ 2 ÷ 2) × 3 × 3 − 4− 4 + 5 + 5";
str = tools_replaceAll(str, "÷" , "/" ) ;
str = tools_replaceAll(str, "×" , "*" ) ;
str = tools_replaceAll(str, "-" , "-" ) ;
alert( str ) ;
关于angularjs - 在 AngularJS 中替换字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352284/