JavaScript의 정규식(Regular Expression)을 활용하면 사용자가 입력한 문자열이 숫자, 영문자, 밑줄(_)로만 구성되어 있는지 간단하게 검증할 수 있습니다. 핵심 패턴은 /^\w+$/이며, 각 요소는 다음과 같은 의미를 가집니다.
- ^ : 문자열의 시작
- \w : 숫자, 영문자, 밑줄([A-Za-z0-9_])과 일치
- + : 앞의 패턴이 한 번 이상 반복됨
- $ : 문자열의 끝
즉, 공백이나 특수문자가 포함되면 패턴이 일치하지 않아 유효성 검사에 실패합니다. 다음은 이 원리를 적용한 전체 예제 코드입니다.
예제 코드
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>정규식 유효성 검사</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>숫자, 영문자, 밑줄만 허용하는 정규식 매치</h1>
<div style="color: green;" class="result"></div>
<input type="text" class="txt" />
<button class="Btn">CHECK</button>
<h3>
위 버튼을 클릭하면 입력한 텍스트가 숫자, 영문자, 밑줄로만
구성되어 있는지 확인할 수 있습니다.
</h3>
<script>
let resEle = document.querySelector(".result");
document.querySelector(".Btn").addEventListener("click", () => {
var str = document.querySelector(".txt").value;
var regex = /^\w+$/;
var match = str.match(regex);
if (match) resEle.innerHTML = "입력한 텍스트는 유효합니다.";
else resEle.innerHTML = "입력한 텍스트는 유효하지 않습니다.";
});
</script>
</body>
</html>실행 결과
위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

공백이 포함된 텍스트를 입력하고 'CHECK' 버튼을 클릭한 경우 — 공백은 \w 패턴에 해당하지 않으므로 유효하지 않다는 메시지가 표시됩니다.

유효한 텍스트(숫자, 영문자, 밑줄만 포함)를 입력하고 'CHECK' 버튼을 클릭한 경우 — 정규식이 정상적으로 일치하여 유효하다는 메시지가 출력됩니다.

이처럼 ^\w+$ 패턴 하나만으로도 회원가입 시 아이디 검증 등 다양한 상황에서 간편하게 입력값 유효성을 확인할 수 있습니다.