Chciałbym pozwolić użytkownikowi na wykonanie prostych obliczeń na wejściach tekstowych, dzięki czemu wpisanie 2 * 5 spowoduje 10. Zamieniam wszystko oprócz cyfr na pusty ciąg, a następnie dokonuję obliczeń za pomocą eval(). Wydaje się to łatwiejsze i prawdopodobnie szybsze niż ręczne analizowanie.Czy korzystanie z javascript eval() jest bezpieczne w przypadku prostych obliczeń na wejściach?
Często mówi się, że eval() jest niebezpieczne, więc chciałbym usłyszeć, czy istnieje jakiekolwiek niebezpieczeństwo lub wada korzystania z niego w tej sytuacji.
function (input) {
value = input.value.replace(/[^-\d/*+.]/g, '');
input.value=eval(value);
}
'var wartość' * westchnienie * – katspaugh
A wtedy zapytasz ludzi, dlaczego' 2 + 2e-3' '1' zamiast' 2.002'. Ostrzeż ludzi przed błędnymi danymi wejściowymi, nie wyrzucaj ich w milczeniu. I spróbuj/pochwyć ocenę, abyś mógł powiedzieć użytkownikowi, czy się nie udało. – DCoder