JavaScript

[RegExp] JS - RegExp - 정규표현식(RegExp : Regular Expression) 구문

목차
  1. RegExp 정의
  2. RegExp 구문
  3. RegExp Modifiers (= 한정어/수정자)
  4. RegExp Brackets (= 괄호)
  5. RegExp Metacharacters (= 메타문자)
  6. RegExp Quantifiers (= 수량자)
  7. RegExp Object Properties (= 객체 속성)
  8. RegExp Object Methods (= 객체 메서드)
  9. RegExp 중요 문자열 메서드 2개
  10. search() 메서드 - 문자열위치찾기
  11. replace() 메서드 - 문자열대체
  12. RegExp 메서드 종류


 

RegExp 정의


문자열에서 특정 패턴으로 특정 내용을 (찾기/대체/발췌) 등을 할 때 사용.

 


 

1.

  • 장점: 간단한 기호 코드 몇 줄로 강력한 기능 수행.
  • 단점: 가독성이 안 좋음. (∵ 주석이나 공백 비허용. 여러가지 기호 사용) 그 결과, 협업에 불리.

 

2. 더 자세히 공부할 분은 여기 참고


 

RegExp 구문


/패턴/한정어;

 


[코드 해석]

 

  • : 시작 및 종료기호 (다른 기호도 가능. 단, 시작 및 종료 기호는 동일해야 함.)
  • 패턴 (pattern) : 찾을 문자열 패턴
  • 한정어 (modifiers) : 의미 한정어. 패턴을 정확히 어떤 식으로 처리할지 설정.

 


[예제]

 

var patt = /Homzzang/i

 

※ Homzzang 문자열 패턴을 대소문자 구별 않고 변수 patt에 할당.

 

RegExp Modifiers (= 수정자/한정어)

※ 수정자 사용 시, 대소문자 구분 않거나 전역검색 수행 가능.

  • i    :  (Ignore Case) - 대소문자 구별 않고 검색.
  • g   :  (Global)  -  문자열 내 일치하는 모든 패턴 검색.
  • m  : (Multi Line)  -  문자열이 여러 행에 걸쳐 나눠 있어도 검색.


PS. 수정자 사용 주의사항

  • 소문자로 표기.
  • 사용 여부는 선택사항. (※ 사용 안 하면, 일치 첫 번째 것만 반환.)

 

 

RegExp Brackets (= 괄호)

※ 괄호는 문자 범위 찾는데 사용.

  • [abc] - 대괄호 안 각각의 문자 찾기 (예: a,b,c 찾기)
  • [^abc] - 대괄호 안에 없는 문자(예: a,b,c 외의 모든 문자 찾기)
  • [0-9] - 대괄호 안 각각의 문자 찾기 (예: 모든 숫자 찾기)
  • [^0-9] - 대괄호 안에 없는 문자 찾기(예: 숫자 아닌 것들 찾기)
  • (x|y) - 지정된 대안을 찾기 (예: x나 y 찾기)

 

 

RegExp Metacharacters (= 메타문자)

※ 메타문자는 특별한 의미 갖는 문자 의미.

  • . - 개행 또는 줄 종결자를 제외한 단일 문자 찾기
  • \w - 단어 문자 찾기
  • \W - 단어가 아닌 문자 찾기
  • \d - 숫자 찾기
  • \D - 숫자가 아닌 문자 찾기
  • \s - 공백 문자 찾기
  • \S - 공백이 아닌 문자 찾기
  • \b - 단어 시작/끝에서 일치 항목 찾기 (예: 시작 - \bHI, 끝 - HI\b)
  • \B - 단어 시작/끝 아닌 일치 항목 찾기
  • \0 - NULL 문자 찾기
  • \n - 새 줄 문자 찾기
  • \f - 폼 피드 문자 찾기
  • \r - 캐리지 리턴 문자 찾기
  • \t - 탭 문자 찾기
  • \v - 세로 탭 문자 찾기
  • \xxx - 8진수 xxx로 지정된 문자 찾기
  • \xdd - 16진수 dd로 지정된 문자 찾기
  • \udddd - 16진수 dddd로 지정된 유니코드 문자 찾기

 

 

RegExp Quantifiers (= 수량자)

 

  • n+ - 적어도 하나의 n을 포함하는 모든 문자열과 일치
  • n* - n이 0개 이상 포함된 모든 문자열과 일치.
  • n? - 0 또는 1번의 n이 포함된 모든 문자열과 일치.
  • n{X} - X n의 시퀀스를 포함하는 모든 문자열과 일치
  • n{X,Y} - X에서 Y n까지의 시퀀스를 포함하는 모든 문자열과 일치
  • n{X,} - 최소한 X n의 시퀀스를 포함하는 모든 문자열과 일치.
  • n$ - 끝에 n이 있는 모든 문자열과 일치
  • ^n - 시작 부분에 n이 있는 모든 문자열과 일치
  • ?=n - 뒤에 특정 문자열 n이 오는 모든 문자열과 일치.
  • ?!n - 뒤에 특정 문자열 n이 오지 않는 모든 문자열과 일치.

 

 

RegExp Object Properties (= 객체 속성)

 

  • constructor - RegExp 객체의 프로토타입을 생성한 함수 반환.
  • global - "g" 수정자가 설정되었는지 확인.
  • ignoreCase - "i" 수정자가 설정되었는지 확인.
  • lastIndex - 다음 일치를 체크 시작할 인덱스 지정.
  • multiline - "m" 수정자가 설정되었는지 확인.
  • source - RegExp 패턴의 텍스트를 반환.

 

 

RegExp Object Methods (= 객체 메서드)

 

  • compile() - 폐기예고(JS 1.5버전). 정규식을 컴파일.
  • exec() - 문자열의 일치 여부 테스트. (첫 번째 일치 반환)
  • test() - 문자열의 일치 여부 테스트. (true/false 반환)
  • toString() - 정규식의 문자열 값을 반환. 더 자세히 보기

 

 

RegExp 중요 문자열 메서드 2개

 

  • search() 메서드 -  일치 항목 검색 후, 일치 항목 위치 반환.
  • replace() 메서드 :  일치 항목 검색 후, 대체 문자열로 수정한 결과 반환.

 

 

search() 메서드 - 문자열위치찾기

[단순 문자열 검색 - 위치 반환]

<p id="hz"></p>


<script>

var str = "Welcome to Homzzang.com"; 

var n = str.search("Homzzang");

document.getElementById("hz").innerHTML = n;

</script>


결과보기


[정규표현식 검색 - 위치 반환]


<p id="hz"></p>


<script>

var str = "Welcome to Homzzang.com"; 

var n = str.search(/homzzang/i);

document.getElementById("hz").innerHTML = n;

</script>


결과보기 

 

replace() 메서드 - 문자열대체

[단순 문자열 검색 - 문자열 대체]


<button onclick="test()">문자열 변경하기</button>


<p id="hz">Welcome to Homzzang</p>


<script>

function test() {

    var str = document.getElementById("hz").innerHTML; 

    var txt = str.replace("Homzzang","(홈짱닷컴 Homzzang.com)");

    document.getElementById("hz").innerHTML = txt;

}

</script>


결과 보기 


[정규표현식 검색 - 문자열 대체]


<button onclick="test()">문자열 변경하기</button>


<p id="hz">Welcome to Homzzang</p>


<script>

function test() {

    var str = document.getElementById("hz").innerHTML; 

    var txt = str.replace(/homzzang/i,"(홈짱닷컴 Homzzang.com)");

    document.getElementById("hz").innerHTML = txt;

}

</script>


결과 보기

 

RegExp 메서드 종류

 

  • RegExp.prototype.exec()
  • RegExp.prototype.test()
  • String.prototype.match()
  • String.prototype.replace()
  • String.prototype.search()
  • String.prototype.split()  

 


 

방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
AJAX JS - AJAX (아작스) 소개
AJAX JS - AJAX - XMLHttpRequest() 메서드 ★ - 객체생성 (= 아작스/에이잭스 핵심 = X…
AJAX JS - AJAX - open()/send() 메서드 ★ - 서버에 요청 보내기 (GET방식 vs POST방…
AJAX JS - AJAX - Server Response (서버응답) - 콜백함수 사용 예제
AJAX JS - AJAX - XML 아작스 예제 (= xml 데이터 불러와 표만들기)
AJAX JS - AJAX - PHP 아작스 예제 ★ (= 입력제시어 = 입력예제)
AJAX JS - AJAX - ASP 아작스 예제 (= 입력제시어 = 입력예제)
AJAX JS - AJAX - DB 아작스 예제 ★ (= 데이터베이스 정보 가져오기) ※ select 태그 optio…
JSON JS - JSON - Introduction (소개)
JSON JS - JSON - Syntax (구문) ★
JSON JS - JSON - JSON vs XML (언어비교)
JSON JS - JSON - Data Types (데이터타입)
JSON JS - JSON - Object (객체)
JSON JS - JSON - Array (배열)
JSON JS - JSON - JSON.parse() 함수 ★ - (JSON문자열 → JS객체) 변환. (= 웹서버와…
6/89
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱 PC버전 로그인