function checkInput(str) {
let a = '1';
const reg = new RegExp(/F\d+/g);
const allF = ['F0', 'F1', 'F2', 'F3', 'F18'];
const curF = str.match(reg);
console.log(allF, curF);
for (let f of curF) {
if (!allF.includes(f)) {
return false
}
}
const nstr = str.replace(reg, '1'); // 替换成纯粹的数学计算公式
console.log(nstr)
if (/[A-Za-z\u4E00-\u9FFF]/g.test(nstr)) { // 校验是否有中英文
return false;
}
let num;
try {
num = eval(nstr);
console.log(num)
return typeof num === 'number' && !isNaN(num);
} catch (e) {
console.log(e)
return false
}
}
function sandboxEval(code) { // 隔离作用域中的变量,单纯的执行eval
with (code) {
return eval(code);
}
}
// (F0+ F1+F2)+F3 +-F18*12')
if (checkInput('(F0+ F1+F2)+F3 +-F18*12')) {
console.log('校验通过');
Promise.resolve();
} else {
console.log('校验不通过');
Promise.reject('校验不通过');
}
console