代码拉取完成,页面将自动刷新
function calculate(expression) {
// 使用正则表达式拆分表达式为操作数和操作符
const parts = expression.match(/(\d+)([\+\-\*/])(\d+)/);
if (!parts || parts.length !== 4) {
throw new Error('Invalid expression');
}
const num1 = Number(parts[1]);
const operator = parts[2];
const num2 = Number(parts[3]);
// 检查操作数是否为数字
if (isNaN(num1) || isNaN(num2)) {
throw new Error('Invalid operands');
}
let result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
// 防止除数为0
if (num2 === 0) {
throw new Error('Cannot divide by zero');
}
result = num1 / num2;
break;
default:
throw new Error('Invalid operator');
}
return result;
}
// 测试
try {
console.log(calculate('1+2')); // 输出:3
console.log(calculate('3-2')); // 输出:1
console.log(calculate('2*3')); // 输出:6
console.log(calculate('4/2')); // 输出:2
// 操作数或操作符错误的情况
try {
console.log(calculate('invalid')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1+2abc')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1+')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1/a')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid operands
}
try {
console.log(calculate('4/0')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Cannot divide by zero
}
} catch (error) {
console.error(error.message);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。