0
이것을 작성했습니다. 그러나 그것은 사악한 평가를 사용하고 있습니다. 이 작업을보다 명확하게 처리하기위한 지침. 내 위생 처리 방법이 충분히 좋은가요? 스택을 검색하여 다른 답변을 찾았지만 올바른 방법으로 나를 뛰어 넘지 않았습니다..단일 텍스트 요소의 값을 계산하십시오
<input class="simple-math" name="TheCalculation" value="">
최종 사용자는 5 + 3 또는 무언가에 입력합니다 및 상자는 어떤 의미에서 클리너 8
$().ready(function() {
$(".simple-math").change(function() {
// get the current val
var raw = $(this).val();
// sanitize, so a smarty-pants can't do bad stuff
var sanitize = raw.replace(/[^0-9\+\-\*\/\%\(\)]+/, "");
// eval the input
var calc = eval(sanitize);
// set the value
$(this).val(calc);
})
});
일반적으로 서버에서 사용자가 입력 한 데이터를 출력하는 경우 'eval'은 악의적입니다. 사용자가 입력 한 내용을 '평가'하는 중이라면 자신에게 "나쁜 물건"은 무엇입니까? – Tesserex
@Tesserex 아주 잘 설명되어 있습니다. –
질문과 관련된 jQuery에 대한 의존성이 표시되지 않습니다. – RobG