g 옵션이 있을경우와 없을경우의 차이

match : 전체 문자열을 반복적으로 검색해 해당하는 모든 결과를 배열로 뿌려줌
괄호로 묶은 부분은 찾은 문자에서 두번째값으로 지정되어야 하지만 match함수에서 g 옵션이 들어갈 경우
값이 할당되지 않는다. g 옵션이 없을 경우에는 처음 찾은 값만 리턴하기 때문에 두번째값으로 지정됨
ex)
<script type="text/javascript>
<!--
    var temp = "\"첫번째\" \"두번재\"\n\"세번째\"";
    var reg = /"([^"]+)"/igm;
    document.write(temp.match(reg));
    //결과값 : "첫번째","두번재","세번째"

    var reg = /"([^"]+)"/im;
    document.write(temp.match(reg));
    //결과값 : "첫번째",첫번째    <=== 따옴표가 없는 첫번째 는 괄호안의 검색 값임
//-->
</script>

exec : 문자열에서 해당하는 값을 배열로 뿌려줌
한번 검색 시 처음 해당하는 값만 뿌려줌
<script type="text/javascript">
<!--
    var temp = "\"첫번째\" \"두번재\"\n\"세번째\"";
    var reg = /"([^"]+)"/igm;
    document.write(reg.exec(temp));
    document.write(reg.exec(temp));
    //결과값 : "첫번째",첫번째"두번째",두번째
//-->
</script>

g 옵션이 있을경우 한번 검색하면 다음으로 포인터가 넘어가고 없을경우에는 첫번째 해당하는 값만 리턴해줌
전체 문자열에서 검색을 하기 위해선 다음과 같이하면 된다
<script type="text/javascript">
<!--
    var temp = "\"첫번째\" \"두번재\"\n\"세번째\"";
    var res = null;
    while((res = reg.exec(temp)) != null) {
        document.write(res+' - ');
    }
    //결과값 : "첫번째",첫번째 - "두번째",두번째 - "세번째",세번째 -
//-->
</script>
by 뭔일이여 2009. 1. 13. 13:16
| 1 |