옵션 | 기능 |
i | 대소문자 구분을 안 합니다. 이 옵션이 생략되면 구분합니다. 즉, 대소문자 구분이 디폴트입니다. |
g | 검색하고자 하는 문자나 문자열이 여럿 있는 경우 모두 검색합니다. 검색 결과는 배열에 담겨져서 리턴됩니다. 이 옵션이 생략되면 첫 번째로 발견되는 하나만 검색합니다. 이게 디폴트입니다. |
m | 여러 줄에 걸쳐져 있는(줄바꿈 문자에 의해서 줄이 바뀌어져 있는) 문자열을 대상으로 검색합니다. 이 옵션이 생략되면 첫 번째 줄만 대상으로 검색합니다. |
이들 옵션을 지정하는 방법은 두 가지입니다. 역시 메써드에 따라 다릅니다. 으으윽~ 왜 이처럼 괴상하게 설계한 것인지... 우선 정규식 패턴 뒤에 붙이는 방법부터 알아봅니다. 이때는 패턴의 뒤 슬래시 뒤에 붙입니다. 예제를 보시죠.
<script>
s = '123abc4';
if (/B/.test(s))
document.write('성공<br>');
else
document.write('실패<br>');
</script>
위 코드를 실행하면 실패라고 나옵니다. 주어진 문자열에는 소문자만 있는데 대문자로 검색했으니까요. 이번엔 아래와 같이 변경합니다.
<script>
s = '123abc4';
if (/B/i.test(s))
document.write('성공<br>');
else
document.write('실패<br>');
</script>
정규식 패턴의 뒤 슬래시 다음에 i를 붙였습니다. 이번엔 당연히 성공이라고 나옵니다. 다만 test 메써드는 g 옵션이 먹지 않습니다. 아니, 먹지 않는다기보다는 의미가 없습니다. 하나라도 매치되면 성공으로 판단하자는 것이니까요. g 옵션의 기능을 보려면 다른 메써드를 써야 합니다. 다음은 그 예입니다.
<script>
var s = '123abc456abc';
var res = s.match(/b/g);
document.write(res);
</script>
위의 예제를 실행해서 웹브라우저에 ‘b,b’라고 찍히면 성공입니다. m 옵션에 대한 것은 다음 회로 미룹니다.