본문 바로가기
프로그래밍/JavaScript

정규표현식 역참조 ( replace )

by 원피스랜드 2020. 12. 23.
반응형

정규표현식을 많이들 쓰지만, 역참조는 많이들 안쓴다. 

 

알고 쓰면 상당히 편리하다.

보통 정규표현식으로 패턴에 해당값을 추출만 하지, 패턴에 해당하는 값에

추가로 값을 붙일때 쓰면 편리하다.  

( 역참조를 사용하면 원문의 특정 패턴을 찾아  "추가문자 + 패턴 + 추가문자" 으로 치환이 가능)

말이 어려우니 밑에 코드 보는게 역시 제일 빠르다.

 

 

여기 아래에 String 값에 이메일 주소가 있다.

 

var string = "Hello, ynkim@ynkim.com is my email address.";

 

나는 이메일 값에다가 시작과 끝에다가 대괄호 추가로 넣고 싶어!!

이렇게 => "Hello, [ynkim@ynkim.com] is my email address.";

이때 정규식 역참조를 쓰면 된다. 

(이메일 정규 표현식은 알고 있어야겠지?? 모르겠으면 검색하면 다 나옴 )

 

var string = "Hello, ynkim@ynkim.com is my email address.";

var reg1 = /\w[\w\.]*@[\w\.]+\w+/gi;    // 이메일 패턴 정규표현식

console.log(string.replace(reg1,'[$&]'));  // 역참조 키워드 $& 사용 

// 결과값 : Hello, [ynkim@ynkim.com] is my email address.

 

사용하자면 무궁 무진하다. 다른케이스를 하나만 더 해보자.

예를 들면 메일 tag를 걸고 싶어!!

 

var string = "Hello, ynkim@ynkim.com is my email address.";

var reg1 = /\w[\w\.]*@[\w\.]+\w+/gi;    // $& 이용

(string.replace(reg1,'<A HREF="mailto:$&">$&</A>'));   // 역참조 키워드 $& 사용 

// 결과값 : Hello, <A HREF="mailto:ynkim@ynkim.com">ynkim@ynkim.com</A> is my email address

 

간단하죠??

반응형

댓글