안녕하세요~
블로그지기 인간대표 입니다.
자바스크립트에서 특정문자 또는 특수문자를 제거할때,
-가 여러번 있는 문자열(주민번호,전화번호)을 단순히 replace('-','')로 하면,
처음 -기호만 삭제되고 나머지는 삭제되지 않습니다.
하여 아래와 같이 해야 가능합니다.
value.replace(/\-/g,'');
-기호가 특수문자 이기때문에 \역슬래시를 붙여줍니다.
다른 정규식 보기
특정문자 제거 : str.replace(/\-/g,'');앞의 공백 제거 : str.replace(/^\s+/,'');
뒤의 공백 제거 : str.replace(/\s+$/,'');
앞뒤 공백 제거 : str.replace(/^\s+|\s+$/g,'');
문자열 내의 공백 제거 : str.replace(/\s/g,'');
개행 제거 : str.replace(/\n/g,'');
엔터 제거 : str.replace(/\r/g,'');
0 제거 : str.replace(/[^(1-9)]/gi,"");
정규식에서 문자가 의미하는 뜻
[a-z] : a ~ z 사이의 문자를 찾음
[abc] : a, b, c중 하나를 찾음
[^abc] : a, b, c를 제외한 문자를 찾음
.z : 아무 문자 하나를 . 기호로 찾으며 z로 끝남을 의미
a+ : a가 1개 이상을 의미함
a* : a가 0개 또는 그 이상을 의미함
s : 공백 문자를 찾음(스페이스, 탭 등)
S : 공백이 아닌 문자를 찾음
d : 숫자를 찾음
D : 숫자가 아닌 문자를 찾음
w : 알파벳 영문과 숫자와 언더바 _ 기호를 찾음
W : 알파벳 영문과 숫자와 언더바 _ 기호가 아닌 것을 찾음
t : 탭 공간을 찾음
v : 버티칼 탭 공간을 찾음
g : 검색범위를 전역으로 확장
i : 대소문자를 구분하지 않음
gi : 검색 범위를 전역으로 확대하면서 대소문자를 구분하지 않음
m : 여러줄을 동시에 매칭함
정규표현식
정규식이라고도 부른다. 보통 regex 혹은 regexp 라 많이 쓴다.
문법
문자열에서 URL을 찾는 정규표현식의 예제는 다음과 같다.
/(http|https|ftp|telnet|news|mms)://[^\"'\s()]+/i
위 정규식은 아래와 같이 구분이 된다.
패턴구분자 시작 : /
찾을 문자열의 패턴 : (http|https|ftp|telnet|news|mms)://[^\"'\s()]+
패턴구분자 끝 : /
패턴변경자 : i
패턴구분자
정규식의 패턴이 달라질 경우 그것을 구분하는 문자로, 정규식 패턴이 하나만 있을 경우에는 굳이 쓸 필요가 없지만
대부분 붙인다. 난해하게 만드는 주범이다. 왜냐하면, 이 패턴구분자는 특수문자 중 역슬래쉬(\)를 제외하고
아무거나 쓸 수 있기 때문이다. 심지어 아래 등장하는 의미를 가진 문자(메타 문자라고 부른다)도 패턴구분자로 쓸 수 있다.
보통 슬래쉬(/)를 많이 사용하지만 규칙이 있는 것이 아니라서 정말로 프로그래밍 하는 사람 마음대로다.
이래저래 헷갈리는 주범 중 하나.
메타 문자
정규표현식에서 일정한 의미를 가지고 쓰는 특수문자를 메타 문자라고 부른다.
^ : 문자열의 시작
$ : 문자열의 종료. 옵션에 따라 문장의 끝 또는 문서의 끝에 매치된다.
. : 임의의 한 문자
[]: 문자 클래스. 문자 클래스 안에 들어가 있는 문자는 그 바깥에서 하나의 문자로 취급된다.
| : or를 나타냄
? : 앞 문자가 없거나 하나 있음
+ : 앞 문자가 하나 이상임
* : 앞 문자가 0개 이상임
{n,m} : 앞 문자가 n개 이상 m개 이하. {0,1} 은 ?와 같은 의미다.
{n,} : 앞 문자가 n개 이상. 위의 형태에서 m이 생략된 형태이다. {0,} 이면 *와 같고 {1,} 이면 +와 같은 의미이다.
() : 하나의 패턴구분자 안에 서브 패턴을 지정해서 사용할 경우 괄호로 묶어주는 방식을 사용한다.
패턴변경자
패턴구분자가 끝나면 그 뒤에 쓰는 것으로, 패턴에 일괄적으로 변경을 가할 때 사용한다.
i : 패턴을 대소문자 구분 없이 검사한다. 이 변경자를 사용할 경우 [a-z]로만 검사해도 자동으로 [a-zA-Z]와
같은 기능을 하게 된다. 가장 많이 쓰이는 패턴.
s : 임의의 한 문자를 가리키는 . 메타 문자에 개행 문자(\n)도 포함시키도록 한다.
이 변경자를 사용하면 .이 줄바꿈도 임의의 한 문자로 취급하여 찾는다.
m : 주어진 문자열에 줄바꿈이 있을 경우, 여러 줄로 취급하여 검사한다.
(줄바꿈이 없다면 써도 의미가 없다.) 원래 정규표현식을 쓸 때 줄바꿈은 무시되는데,
이걸 사용하면 줄바꿈을 적용해서 검사한다. 그리고 ^은 한 줄의 시작, $는 한 줄의 끝으로 의미가 달라진다.
x : 공백 문자를 찾지 않고 무시해 버린다. 단, 이스케이프(역슬래쉬하고 같이 쓸 경우)하거나
문자 클래스 안에 있을 경우에는 이걸 써도 공백을 찾는다.
서이추 항상 환영입니다^_^
이상 인간대표 블로그였습니다.
'프로그래밍 > [JS] javascript & jQuery' 카테고리의 다른 글
javascript 아이디 비밀번호체크 (0) | 2017.09.29 |
---|---|
[jQuery] $(window).resize() 리사이즈 끝날때 이벤트 실행 (0) | 2015.03.27 |
[jQuery] input에 숫자와 콤마(,)만 입력하기!! (0) | 2015.03.25 |