JavaScript 정규 표현식의 dotAll 플래그란?
JavaScript에서 dotAll은 정규 표현식 객체가 갖는 읽기 전용 속성으로, 해당 정규 표현식에 s 플래그가 설정되어 있는지 여부에 따라 true 또는 false를 반환합니다.
s 플래그(dotAll 모드)를 사용하면 점(.) 메타 문자가 줄바꿈 문자(\n, \r 등)까지도 매칭할 수 있게 됩니다. 기본적으로 점은 줄바꿈 문자를 제외한 모든 문자와 일치하지만, s 플래그가 설정되면 이러한 제한이 해제됩니다.
다음은 JavaScript에서 정규 표현식에 dotAll 플래그를 구현하는 예제 코드입니다.
예제 코드
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>dotAll 플래그 예제</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>정규 표현식의 dotAll 플래그</h1>
<div style="color: green;" class="result"></div>
<button class="btn">클릭하세요</button>
<h3>
위 버튼을 클릭하면 정규 표현식에 s 플래그가 설정되어 있는지 확인할 수 있습니다.
</h3>
<script>
let btnEle = document.querySelector(".btn");
let resEle = document.querySelector(".result");
const regex = new RegExp("Hello", "s");
btnEle.addEventListener("click", () => {
resEle.innerHTML = "s 플래그 설정 여부 : " + regex.dotAll;
});
</script>
</body>
</html>실행 결과
위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

'클릭하세요' 버튼을 누르면 아래와 같이 결과가 표시됩니다.

버튼을 클릭하면 regex.dotAll 속성 값이 화면에 출력되며, 위 예제에서는 생성자에 s 플래그를 전달했기 때문에 결과값이 true로 나타납니다. 만약 s 플래그 없이 정규 표현식을 생성했다면 false가 출력됩니다.