정규표현식이란?
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식!
자바스크립트의 경우 내장되어있으므로 편하게 사용할 수 있음
패턴 만들기
var pattern = /a/;
var pattern = new RegExp('a');
RegExp 객체의 사용
- exec()
예를 들어서 url 과 같은 정보를 추출하고 싶을 때, test 하고 싶을 때, 필요한 정보를 치환하고 싶을 때 사용
console.log(pattern.exec('abcdef')); //["a"]
/a./ 의 경우 a를 포함하여 한문자까지 나타낸다고 볼 수 있음!
var pattern = /a./;
console.log(pattern.exec('abcde')); // ["ab"]
- test() : 우리가 찾는 정보가 있는지 없는지 테스트
pattern.test('abcde'); // true
pattern.test('bcdef'); // false
string
- match() : RegExp.exec() 와 비슷함
var pattenr = /a/;
var str = 'abcdef';
str.match(pattern); // ["a"], 없을 땐 null
- replace() : 패턴에 해당되는 문자를 바꿔줌
str.replace(pattern, 'A')); // Abcdef
옵션
- i : i 를 붙이면 대소문자를 구분하지 않음.
- g : g 를 붙이면 검색된 모든 결과를 리턴함.
캡처
괄호안의 패턴은 마치 변수처럼 재사용할 수 있음. 이 때 기호 $를 사용하는데 아래 코드는 everybody 와 coding 의 순서를 역전시킴.
var pattern = /(\w+)\s(\w+)/;
https://regexper.com/#%28%5Cw%2B%29%5Cs%28%5Cw%2B%29
- \w : A-Z, a-z, 0-9
- + : 수량자, 앞에 있는 문자가 하나 이상인 경우에 이 패턴이 유효해짐
- \s : 공백 문자열
var str = "coding everybody";
var result = str.replace(pattern, "$2, $1");
console.log(result); // everybody, coding
어떻게 중간에 콤마가..?
- $2 : 패턴에서 두번째그룹 (두번째 괄호안)을 뜻함.
- "$2, $1" : 이 문자열 그대로 나온것임 두번째 괄호가 먼저나오고 콤바를 찍고 첫번째 괄호 문자열
치환
var urlPattern = /\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*/gim;
var content = '생활코딩 : http://opentutorials.org/course/1 입니다. 네이버 : http://naver.com 입니다. ';
var result = content.replace(urlPattern, function(url){
return '<a href="'+url+'">'+url+'</a>';
});
console.log(result);
(함수관련부분은 함수와 콜백부분에서!!)
'JavaScript & Node js' 카테고리의 다른 글
[nest.js] AWS s3 bucket 에 파일 여러개 업로드 + rest api 만들기 (1) | 2021.10.26 |
---|---|
npm ERR! must provide string spec (0) | 2021.07.13 |
[Redux] 노드 리액트 Redux 기본 구조 만들기! (0) | 2020.07.01 |
[Concurrently] 서버와 클라이언트 동시에 실행시키기! (0) | 2020.07.01 |
[node.js/react] server와 client간의 port가 달라 연결이 안될 때 (0) | 2020.07.01 |