본문 바로가기

프로그래밍/알고리즘/Javascript/jQuery

자바스크립트 정규표현식 사용법

정규표현식 객체 생성

2가지 방식이 있습니다.

new RexExp(패턴 문자열,모드 문자열)

이런식으로 문자열로 정규 표현식을 생성하는 방법이 있고

/패턴/모드 이런식으로 코드로 생성하는 방법이 있습니다.


var regex= /[가-힣]/g;

var regex= new RegExp('[가-힣]','g');

이 부분은 정규표현식을 써넣는 부분입니다.


var regex= /[가-힣]/g;

var regex= new RegExp('[가-힣]','g');

이 부분은 모드 플래그 부분입니다.




패턴 매칭하기

regex.test("alpha알파 beta베타")

생성해논 정규표현식 객체입니다.


regex.test("alpha알파 beta베타")

패턴을 매칭 시킬 문자열 입니다.


패턴이 매칭 될 경우 true를 반환합니다.




패턴 매칭 문자열 바꾸기

"alpha알파 beta베타".replace(regex,"")

바꿀 문자열 입니다. 문자열 객체의 replace 함수를 사용합니다.


"alpha알파 beta베타".replace(regex,"")

생성해둔 정규 표현식 객체입니다.


"alpha알파 beta베타".replace(regex,"")

패턴에 매칭한 문자열을 대체할 문자열입니다.




모드 플래그

g : 한 라인에 패턴에 매칭되는 모든 문자열을 찾습니다.

i : 대소문자 관계 없이 패턴과 매칭 시킵니다.

m : 여러 라인에 걸쳐 검사를 합니다.


g

g 없이 쓸 경우 최초로 매칭되는 문자열만 바뀌게 됩니다.


i

대소문자를 가리지 않고 매칭하게 됩니다.


m

/^fgh/.test("abcde\nfgh")

fgh로 시작하는 패턴을 찾습니다. 하지만 줄을 나누지 않고 하나의 문자열로 인식하기 때문에 fgh로 시작하는 문자열이 아니기 때문에 매칭되지 않았습니다.


/^fgh/m.test("abcde\nfgh")

멀티라인을 활성화 하여 패턴을 검사를 합니다. 두번째 줄에서 fgh로 시작하는 패턴이 존재합니다. 고로 패턴이 매칭 되었습니다.



패턴 참조 문자열 바꾸기

"a가b나c다d라e마f바g사h".replace(/([가-힣])/g,"$1 ")

패턴에 괄호를 쳐서 참조할 패턴을 지정합니다.

"a가b나c다d라e마f바g사h".replace(/([가-힣])/g,"$1 ")

첫번째 괄호의 패턴을 매칭한 문자열을 $1로 대체하여 사용할 수 있습니다.