JavaScript
[JS] 부등식 검증 함수
amoomar
2024. 7. 4. 15:50
반응형
javascript에서 "0>1"등의 형식과 같은 문자열로 된 부등식의 결과가 올바른지, 아닌지 판별하기 위해 eval()함수를 사용할 수 있다. 하지만 어딜 찾아봐도 해당 함수는 보안상의 위험이 있으니 사용을 지양하라고 한다.
해당 함수를 대체하기 위해 동일한 결과를 제공하는 함수를 하단에 공유한다.
function evaluateInequality(inequalityString) {
// 정규 표현식을 사용하여 부등식 패턴을 추출
const regex = /^([-+]?\d+(\.\d*)?)\s*([<>]=?)\s*([-+]?\d+(\.\d*)?)$/;
const match = inequalityString.match(regex);
if (!match) {
throw new Error('Invalid inequality format');
}
const leftOperand = parseFloat(match[1]);
const operator = match[3];
const rightOperand = parseFloat(match[4]);
// 부등식을 평가하여 결과를 반환
switch (operator) {
case '>':
return leftOperand > rightOperand;
case '>=':
return leftOperand >= rightOperand;
case '<':
return leftOperand < rightOperand;
case '<=':
return leftOperand <= rightOperand;
case '=':
return leftOperand === rightOperand;
default:
throw new Error('Unsupported operator');
}
}
// 사용 예시
try {
const result1 = evaluateInequality("0 >= 0");
console.log(result1); // true
const result2 = evaluateInequality("-1 >= 0");
console.log(result2); // false
const result3 = evaluateInequality("abc >= 0"); // 예외 발생: Invalid inequality format
} catch (error) {
console.error(error.message);
}
반응형