JavaScript의 source 속성은 RegExp 객체가 가진 읽기 전용(read-only) 문자열 속성입니다. 이 속성에는 해당 정규 표현식 객체에 설정된 패턴(pattern)의 원본 텍스트가 그대로 저장되어 있습니다.
다만 주의할 점은, source 속성 값에는 아래 두 가지가 포함되지 않는다는 것입니다.
- 정규식 리터럴을 감싸는 구분용 슬래시(
/) g(전역 검색),i(대소문자 무시),m(여러 줄 모드) 등의 플래그
예를 들어 /script/g라는 정규식을 만들었다면, source 속성은 오직 script라는 순수한 패턴 문자열만 반환합니다.
사용 예제
아래 코드를 실행하면 JavaScript에서 source 속성을 어떻게 활용하는지 직접 확인할 수 있습니다.
<html>
<head>
<title>JavaScript RegExp source Property</title>
</head>
<body>
<script>
var str = "JavaScript is an interesting scripting language";
var re = new RegExp("script", "g");
re.test(str);
document.write("The regular expression is : " + re.source);
</script>
</body>
</html>실행 결과
The regular expression is : script
위 예제에서는 new RegExp("script", "g")로 정규식 객체를 생성했습니다. 생성 시 플래그로 "g"를 지정했음에도 불구하고, re.source를 출력하면 플래그가 제외된 순수한 패턴인 script만 화면에 표시되는 것을 확인할 수 있습니다. 이처럼 source 속성은 디버깅 시 현재 정규식 객체에 어떤 패턴이 적용되어 있는지 빠르게 파악할 때 유용하게 활용됩니다.