JavaScript에서 어떤 값이 백분율(%) 형식인지 확인해야 하는 경우가 종종 있습니다. 예를 들어 다음과 같은 값이 있다고 가정해 보겠습니다.
var value = "97%";
이 값이 올바른 백분율 형식인지 확인하려면 정규 표현식(Regular Expression)을 사용하는 것이 가장 간단하고 효과적인 방법입니다.
정규 표현식 패턴 설명
여기서 사용할 정규 표현식은 /^\d+(\.\d+)?%$/입니다. 각 부분의 의미는 다음과 같습니다.
^: 문자열의 시작을 의미합니다.\d+: 하나 이상의 숫자가 와야 함을 의미합니다.(\.\d+)?: 소수점과 그 뒤의 숫자가 선택적으로 존재할 수 있음을 의미합니다. (예: 97.5%)%: 문자열 끝에 백분율 기호(%)가 있어야 함을 의미합니다.$: 문자열의 끝을 의미합니다.
예제 코드
다음은 백분율 값과 일반 문자열을 각각 검증하는 전체 코드입니다.
var value = "97%";
var result = /^\d+(\.\d+)?%$/.test(value);
if (result == true) {
console.log("백분율 값입니다 = " + value);
} else {
console.log("백분율 형식이 아닙니다");
}
var value1 = "percent";
var result1 = /^\d+(\.\d+)?%$/.test(value1);
if (result1 == true) {
console.log("백분율 값입니다 = " + value1);
} else {
console.log("백분율 형식이 아닙니다");
}프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo214.js라고 가정합니다.
실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
PS C:\Users\Amit\JavaScript-code> node demo214.js 백분율 값입니다 = 97% 백분율 형식이 아닙니다
첫 번째 값 "97%"는 정규 표현식 조건을 만족하므로 백분율로 인식되었고, 두 번째 값 "percent"는 숫자와 % 기호로 구성되지 않았기 때문에 백분율 형식이 아니라고 판별된 것을 확인할 수 있습니다.
마무리
이처럼 정규 표현식과 test() 메서드를 활용하면 문자열이 유효한 백분율 형식인지 손쉽게 검증할 수 있습니다. 소수점까지 허용하려면 위 패턴을 그대로 사용하고, 정수만 허용하려면 /^\d+%$/ 패턴으로 단순화하면 됩니다.