Проблема в том, что по какой -то причине код не работает. Например, если я введу строку 2 ** 63 , она выводит 9 223,372 036 854 776 000 . Однако, если я введу 1A , вы увидите, что одна из вещей, которые выходы консоли являются, не является , одобренным! , когда они оба одинаковы. Я не использую персонажей из другого алфавита (например, греческий или кирилли, так как вы сможете легко проверить для себя. Вот все мой код: < /p>
Код: Выделить всё
const expr = document.querySelector("#expr");
const result = document.querySelector("#result");
function calculate() {
const disallowedChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`~!@#$%^&_=[]\\{}|;':\",./?";
var input = expr.value;
var valid = true;
if (input != "") {
charTest: for (var k = 0; k < input.length; k++) {
console.log("The current character being checked is " + input.charAt(k) + " at position " + k);
for (var i = 0; i < disallowedChars.length; i++) {
console.log("Comparing " + input.charAt(k) + " at position " + k + " to " + disallowedChars.charAt(i) + " at position " + i);
if (input.charAt(k) == disallowedChars.charAt[i]) {
console.error("Denied");
alert("For safety purposes, the character \"" + input.charAt(k) + "\" is not allowed");
valid = false;
break charTest;
} else {
console.log(input.charAt(k) + " is not " + disallowedChars.charAt(i));
console.log("Approved!");
}
}
}
if (valid) {
var resultText = new Number(eval(input)).toLocaleString();
result.value = resultText;
} else {
alert("Failed to calculate expression")
}
} else {
alert("Enter a valid expression");
}
}
function resetHeights() {
expr.style.height = result.style.height = "12.5vh"
}< /code>
eval() test
Calculate
Reset heights
Reset
Allowed symbols:
[list]
[list]+
- — subtraction
Код: Выделить всё
-
- — multiplication
Код: Выделить всё
*
- — division
Код: Выделить всё
/
- — exponentiation
Код: Выделить всё
**
- — parentheses for grouping
Код: Выделить всё
()
< /code>
< /div>
< /div>
< /p>
Я пытался выяснить это в общей сложности около часа, но я просто не мог найти, где я мог испортить. Кто -нибудь знает, в чем может быть проблема и как я мог бы его исправить?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-both-cha