피곤핑
코딩일탈
피곤핑
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin & Java
    • Spring
      • Spring Security
      • Spring
    • 네트워크
    • JavaScript & Node js
    • Docker
    • Python3
    • Unity
    • 딥러닝
    • 객체지향프로그래밍
    • Error 보고서
    • 나의 이야기 & 회고
    • HTML & CSS
    • Archive
    • 독서

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 티스토리챌린지
  • 코딩테스트준비
  • JavaScript
  • 개발자취업
  • Client
  • 오블완
  • TiL
  • 항해99
  • 99클럽
  • nodejs

최근 댓글

hELLO · Designed By 정상우.
피곤핑

코딩일탈

[JavaScript] 정규표현식 (Regular Expression)
JavaScript & Node js

[JavaScript] 정규표현식 (Regular Expression)

2020. 7. 7. 00:04

 정규표현식이란? 

특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식!

자바스크립트의 경우 내장되어있으므로 편하게 사용할 수 있음

 

패턴 만들기
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+)/;

regexp 시각화 사이트

https://regexper.com/#%28%5Cw%2B%29%5Cs%28%5Cw%2B%29

 

Regexper

 

regexper.com

- \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
    'JavaScript & Node js' 카테고리의 다른 글
    • [nest.js] AWS s3 bucket 에 파일 여러개 업로드 + rest api 만들기
    • npm ERR! must provide string spec
    • [Redux] 노드 리액트 Redux 기본 구조 만들기!
    • [Concurrently] 서버와 클라이언트 동시에 실행시키기!
    피곤핑
    피곤핑

    티스토리툴바