자세히 설명합니다:
1) 표현식 객체의 exec 메소드에 대해 g를 추가하지 않으면 몇 번 실행해도 첫 번째 일치만 반환됩니다. g를 추가하면 첫 번째 일치가 반환됩니다. 첫 번째 일치 항목이 반환된 다음 두 번째 일치 항목이 수행됩니다. 예:
var regx=/userd/ ;
var str="user18duser2dsc";
var rs=regx.exec(str);//이때 rs의 값은 {user1}입니다.
var rs2=regx.exec(str); //이때 rs의 값은 여전히 {user1}
regx=/userd/g:이면 rs의 값은 {user1}이고 rs2의 값은 { user2}
이 예를 통해 설명하세요. exec 메소드의 경우 표현식에 g가 추가된다는 것은 exec 메소드를 실행하여 모든 일치 항목이 반환된다는 의미는 아니지만, g를 추가한 후에는 모든 일치 항목이 반환된다는 의미입니다. 여기서 "메서드"는 exec용이므로 이 메서드를 실행하면 됩니다.
2) 표현식 객체의 테스트 방법은 g를 추가해도, g를 추가하지 않아도 차이가 없습니다.
3) String 개체의 match 메서드의 경우 g를 추가하지 않으면 첫 번째 일치 항목만 반환됩니다. match 메서드가 항상 실행되면 항상 첫 번째 일치 항목이 반환됩니다. 일치하는 항목이 한 번에 반환됩니다. 예:
var regx=/userd/ ;
var str="user1dge3user2gwe";
var rs=str.match(regx);//이때 rs의 값은 {user1}입니다.
var rs2=str.match(regx); //이때 rs2의 값 값은 여전히 {user1}입니다.
regx=/userd/g이면 rs의 값은 {user1, user2}이고 rs2의 값입니다. is also {user1, user2}
4) 문자열 객체의 대체 메소드의 경우 g가 표현식에 추가되지 않으면 첫 번째 일치 항목만 대체됩니다. g가 추가되면 모든 일치 항목이 대체됩니다. 교체되었습니다.
5) String 객체의 분할 방법의 경우 g를 추가하는 것은 g를 추가하지 않는 것과 같습니다. 즉,
var sep=/userd/;
var array=”user1dfsfuser2dfsf”.split(sep)
배열은 값이 {dfsf,dfsf}입니다. sep=/userd/g일 때 반환 값은 동일합니다.
6) 문자열 객체의 검색 방법은 g를 추가하든 안하든 동일합니다.