我正在制作一个计算器,如果我有25tan(),我不希望计算器进行计算,它应该给出输出'语法错误',另一方面tan(25)应该工作。我不能让它发挥作用。
if(equation)
{
if(tan == true)
{
if(input.innerHTML = inputVal + 'Tan(')
{
input.innerHTML = 'Syntax Error';
tan = false;
}
else
{
inputVal = inputVal.replace('Tan(', '');
inputVal = inputVal.replace(')', '');
input.innerHTML = Math.tan(inputVal);
}
}
input.innerHTML = eval(equation);
//Om det är NaN så ersätts det med '0'
if (isNaN(a))
{
a = 0;
}
}
我已编辑过这个,但它在25Tan()和Tan(25)上都会出现语法错误。
这是固定版本
if(equation)
{
if(tan == true)
{
if(equation.indexOf('Tan(') == 0)
{
inputVal = inputVal.replace('Tan(', '');
inputVal = inputVal.replace(')', '');
input.innerHTML = Math.tan(inputVal);
}
else
{
input.innerHTML = 'Syntax Error';
tan = false;
}
}
input.innerHTML = eval(equation);
//Om det är NaN så ersätts det med '0'
if (isNaN(a))
{
a = 0;
}
}
答案 0 :(得分:0)
如果要检查子字符串是否包含在给定字符串中,则应使用indexOf函数。它返回字符串的子串索引。如果子字符串不存在,则字符串函数返回-1。
然后你的代码应该是这样的:
if (equation) {
if (tan == true) {
if (input.value.indexOf('Tan(') == 0) {
inputVal = input.value;
inputVal = inputVal.replace('Tan(', '');
inputVal = inputVal.replace(')', '');
input.value = Math.tan(inputVal);
} else {
input.value = 'Syntax Error';
tan = false;
}
}
else {
input.value = eval(equation);
}
}