정규 표현 식 의'g'는 무슨 뜻 입 니까?첨부 파일 인자 g 의 용법 입 니 다.

4007 단어 정규 표현 식
"정규 표현 식(/[^0-9]/g,')의"/g"이 무슨 뜻 입 니까?"이 문 제 는 여러분 들 이 정규 표현 식 에 대해 더욱 종합 적 이 고 깊 은 인식 을 가 질 수 있 도록 저 는 관건 적 인 부분 과 헷 갈 리 기 쉬 운 부분 을 체계적으로 정리 하 겠 습 니 다.
요약 1:첨부 매개 변수 g 의 용법
표현 식 에 매개 변수 g 를 추가 하면 전역 적 으로 일치 할 수 있 음 을 표시 합 니 다.여기 서'가능 하 다'는 의 미 를 주의 하 십시오.우 리 는 상세 하 게 서술 했다.
1)표현 식 대상 의 exec 방법 에 대해 g 를 추가 하지 않 으 면 첫 번 째 일치 만 되 돌려 줍 니 다.몇 번 을 실행 하 든 마찬가지 입 니 다.g 를 추가 하면 첫 번 째 실행 도 첫 번 째 일치 로 되 돌아 가 고 두 번 째 일치 로 되 돌아 가 며 순서대로 유추 합 니 다.예컨대

var regx=/user\d/; 
var str=“user18dsdfuser2dsfsd”; 
var rs=regx.exec(str);//  rs   {user1} 
var rs2=regx.exec(str);//  rs     {user1}
만약 regx=/user\d/g;rs 의 값 은{user 1}이 고,rs2 의 값 은{user 2}입 니 다.
이 예 를 통 해 설명 합 니 다.exec 방법 에 대해 표현 식 은 g 를 추 가 했 습 니 다.exec 방법 을 실행 하면 모든 매 칭 을 되 돌 릴 수 있 는 것 이 아니 라 g 를 추가 한 후에 저 는 어떤 방식 으로 모든 매 칭 을 얻 을 수 있 습 니 다.여기 의'방식'은 exec 에 있어 서 순서대로 이 방법 을 실행 하면 됩 니 다.
2)표현 식 대상 의 test 방법 에 대해 g 를 넣 는 것 과 g 를 넣 지 않 는 것 은 별 차이 가 없다.
3)String 대상 의 match 방법 에 대해 g 를 추가 하지 않 고 첫 번 째 일치 만 되 돌려 줍 니 다.match 방법 을 계속 실행 하면 항상 첫 번 째 일치 로 돌아 갑 니 다.g 를 추가 하면 한 번 에 모든 일치 로 돌아 갑 니 다.(표현 식 대상 의 exec 방법 과 달리 exec 에 있어 서 표 달 식 은 g 를 추가 하 더 라 도 한 번 에 모든 일치 로 돌아 가지 않 습 니 다)예 를 들 면:

var regx=/user\d/; 
var str=“user1sdfsffuser2dfsdf”; 
var rs=str.match(regx);//  rs   {user1} 
var rs2=str.match(regx);//  rs     {user1}
 regx=/user\d/g 이면 rs 의 값 은{user 1,user 2}이 고 rs2 의 값 도{user 1,user 2}입 니 다.
4)String 대상 의 replace 방법 에 대해 표현 식 이 g 를 추가 하지 않 으 면 첫 번 째 일치 만 바 꾸 고 g 를 추가 하면 모든 일치 만 바 꿉 니 다.(오 프 닝 세 문제 가 이 점 을 잘 설명해 준다)
5)String 대상 의 split 방법 에 g 를 추가 하 는 것 은 g 를 추가 하지 않 는 것 과 같 습 니 다.즉,:

var sep=/user\d/; 
var array=“user1dfsfuser2dfsf”.split(sep);
array 의 값 은{dfsf,dfsf}입 니 다.
이때 sep=/user\d/g,반환 값 은 같 습 니 다.
6)String 대상 의 search 방법 에 g 를 넣 든 말 든 마찬가지 입 니 다.
요약 2:추가 매개 변수 m 의 용법
추가 매개 변수 m 는 여러 줄 이 일치 할 수 있 음 을 나타 낸다.그러나 이것 은^와$모드 를 사용 할 때 만 작용 한다.다른 모드 에서 m 를 추가 하거나 추가 하지 않 아 도 여러 줄 이 일치 할 수 있다(사실은 여러 줄 의 문자열 도 일반 문자열 이다).우 리 는 예 를 들 어 이 점 을 설명 한다.
1)사용^의 예

var regx=/^b./g; 
var str=“bd76 dfsdf 
sdfsdfs dffs 
b76dsf sdfsdf”; 
var rs=str.match(regx);
 이 때 g 를 추가 하 는 것 과 g 를 추가 하지 않 는 것 은 첫 번 째 일치{bd}만 되 돌려 줍 니 다.regx=/^b./gm 이면 모든 일치{bd,b7}을 되 돌려 줍 니 다.regx=/^b./m 이면 첫 번 째 일치 만 되 돌려 줍 니 다.따라서 m 가입 은 여러 줄 의 매 칭 을 할 수 있 음 을 나타 내 고 g 가입 은 전체 매 칭 을 할 수 있 음 을 나타 내 며 종합 하면 여러 줄 의 전체 매 칭 을 할 수 있 음 을 나타 낸다.
2)다른 모델 을 사용 하 는 예,예 를 들 어

var regx=/user\d/; 
var str=“sdfsfsdfsdf 
sdfsuser3 dffs 
b76dsf user6”; 
var rs=str.match(regx);
이 때 인자 g 를 추가 하지 않 으 면{user 3}을 되 돌려 주 고,인자 g 를 추가 하면{user 3,user 6}을 되 돌려 주 며,m 를 추가 하지 않 으 면 영향 을 주지 않 습 니 다.
3)따라서 m 에 대해 우 리 는 그것 의 사용 을 잘 알 아야 한다.이것 은^와$모드 에 만 작용 한 다 는 것 을 기억 해 야 한다.이 두 가지 모드 에서 m 의 역할 은 m 를 넣 지 않 으 면 첫 줄 에서 만 일치 할 수 있 고 m 를 넣 으 면 모든 줄 에서 일치 할 수 있다.우 리 는^의 예 를 하나 더 보 자.

var regx=/^b./; 
var str=“ret76 dfsdf 
bjfsdfs dffs 
b76dsf sdfsdf”; 
var rs=str.match(regx);
이때 rs 의 값 은 null 입 니 다.g 를 넣 으 면 rs 의 값 은 null 입 니 다.m 를 넣 으 면 rs 의 값 은{bj}(즉,첫 줄 에서 일치 하 는 것 을 찾 지 못 했 습 니 다.매개 변수 m 가 있 기 때문에 아래 줄 로 계속 가서 일치 하 는 지 찾 을 수 있 습 니 다).m 와 g 를 더 하면{bj,b7}(m 만 추가 하고 g 설명 을 추가 하지 않 으 면 여러 줄 로 일치 할 수 있 습 니 다.그러나 일치 하 는 것 을 찾 으 면 되 돌아 갑 니 다.g 를 추가 하면 여러 줄 의 모든 일치 하 는 것 을 되 돌려 줍 니 다.물론 match 방법 에 대해 서 는 이 렇 습 니 다.exec 에 대해 서 는 여러 번 실행 해 야 순서대로 돌아 갈 수 있 습 니 다)
요약 3:HTML 의 textarea 입력 필드 에서 Enter 키 를 누 르 면 해당 하 는 제어 문 자 는'\r',즉'Enter 줄 바 꾸 기'입 니 다.'\r',즉'줄 바 꾸 기'가 아 닙 니 다.앞에서 우리 가 들 었 던 예 를 보 겠 습 니 다.

var regx=/a\r
bc/; var str=“a bc”; var rs=regx.exec(str);
결과:일치 에 성 공 했 습 니 다.rs 의 값 은{}입 니 다.표현 식 이/a\rbc/이면 일치 하지 않 습 니 다.따라서 일반적인 편집기 에서'Enter'키 는'Enter 줄 바 꾸 기'가 아니 라'줄 바 꾸 기'를 의미 합 니 다.적어도 textarea 필드 에 서 는 이 렇 습 니 다.

좋은 웹페이지 즐겨찾기