일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 이종호
- 개발자
- 리액트 예제
- 자료구조
- 개발
- 비동기
- 계명대
- react
- 리액트
- SWIFT
- 스벨트
- 자스민
- 스위프트
- queue
- 자바스크립트 자료구조
- Hitit
- 자바스크립트
- Svelte
- 계명대 이종호
- data structure
- hokidoki
- HTML
- 힛잇
- hokeys
- TDD
- jest
- IOS
- 호키도키
- 호키스
- javascript
- Today
- Total
Dog foot print
[javascript] 정규표현식이란 ? 본문
정규표현식이란 문자열에서 특정한 패턴의 규칙을 가진 문자열의 집합을 표현 하는데 사용하는 형식 언어이다. - 위키
정의가 조금 와닿지 않을 수 도 있을 것 같다. 예를 들면 우리가 커뮤니티나 게임에서 "시발", "개새끼" , "섹스" 등 금지어를 글에 적을 때 해당 금지어 때문에 작성이 되지 않는 다던가 해당 금지어가 다른 문자열로 치환 되는 것을 본 경험이 있을 것이다. 이런 전체 문자열에서 특정한 문자열의 검색과 치환을 위해 사용되는 것이 정규표현식이다.
정규표현식 생성방법
정규표현식을 만드는 방법은 조금 난이도가 있어 보인다. 검색기능이 강력한 사이트를 관리하는 입장이라면 정규표현식은 필수로 잘 다뤄야 겠지만 일반인이라면 사용할때만 집중해서 만드는 것도 좋을 듯하다. 아래에 정말 잘 정리해놓은 블로그가 있으니 참조하면 된다.
https://soooprmx.com/archives/7718
javascript의 정규표현식 사용
자바스크립트에서 정구표현식을 사용할때는 RegExp라는 객체의 인스턴스로 만들어주어도 되고 그냥 일반 변수에 저장 해도 된다 .
let regExp = new RegExp('[0-9]','g');
let regExp = '/[0-9]/';
RegExp 생성자 인자 ' 모드 '
let regExp = new RegExp('[0-9]','g'); //전역 검색
let regExp = new RegExp('[a-z]','i'); //대소문자 구분 없는 검색
let regExp = new RegExp('[0-9]','m'); // 다중 행 검색
let regExp = new RegExp('[0-9]','u'); // 유니코드
let regExp = new RegExp('[0-9]','y'); // sticky 검색
'g' : 문자열에 있는 해당 패턴에 true를 반환한다.
g를 적지 않고 replace나 검색을 하면 문자열을 돌다가 처음 만나는 패턴만 반환하고 끝난다.
'i' : 해당 패턴의 대소문자를 가리지 않고 사용한다.
'm' : '\n' 문자열이 개행이 되어도 모든 행에 걸쳐서 문자열을 검사한다.
해당 문자열이 패턴에 해당하는지 확인해보기 .test();
test 메서드는 인자로 문자열을 받고 해당문자열에 특정 패턴이 있으면 true를 return 한다.
let regExpNumbers = new RegExp('[0-9]','g');
console.log(regExpNumbers.test("안녕하세요")); // true
console.log(regExpNumbers.test("안녕하세요 0")); // false
let regExpAtoZ = /[A-Z]/i;
console.log(regExpAtoZ.test("안녕하세요")); //false
console.log(regExpAtoZ.test("hellow")); // true
해당 패턴을 문자열에서 치환 하기 string.replace();
let regExpAtoZ = /[A-Z]/ig; // 대소문자를 가리지 않고 문자열 전체에서 검색한다.
let dummyString = "안녕하세요 hello world";
console.log(regExpAtoZ.test(dummyString)); // true
dummyString = dummyString.replace(regExpAtoZ,""); // replace()메서드는 첫번째 인자로 해당하는 문자열을 2번째 인자로 바꿔준다.
console.log(dummyString); // 안녕하세요
replace 메서드는 스트링 객체에서 작동하며 첫번째 인자로 받은 변환할 내용을 2번째 인자 변환할 내용으로 바꿔주고 바뀐 string을 return 한다.
'Javascript' 카테고리의 다른 글
[javaScript] 추억의 javascript로 달력 만들기(2) (0) | 2019.07.25 |
---|---|
[javascript] 추억의 javascript로 달력 만들기 (1) (10) | 2019.07.24 |
[javascript] 단순 연결리스트 만들기 linked-list (0) | 2019.07.18 |
[javascript] Call By Reference , Call By Value (0) | 2019.07.17 |
[javascript] Deck 구현 하기 (0) | 2019.07.16 |