ES6 학습 노트 의 정규 표현 식 과 문자열 정규 방법 분석
RegExp 구조 함수
ES5 에서 RegExp 구조 함수 의 매개 변 수 는 두 가지 상황 이 있다.
첫 번 째 상황 은 매개 변 수 는 문자열 입 니 다. 이때 두 번 째 매개 변 수 는 정규 표현 식 의 수정자 (flag) 를 표시 합 니 다.
var regex = new RegExp('xyz', 'i');
//
var regex = /xyz/i;
두 번 째 상황 은 매개 변 수 는 정규 표현 식 이 고 이 때 는 기 존의 정규 표현 식 의 복사 본 을 되 돌려 줍 니 다.
var regex = new RegExp(/xyz/i);
//
var regex = /xyz/i;
그러나 ES5 는 이때 두 번 째 인 자 를 사용 하고 수정자 를 추가 하 는 것 을 허용 하지 않 습 니 다. 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
var regex = new RegExp(/xyz/, i);
// Uncaught TypeError: Cannot supply flags when constructing one RegExp from another
ES6 는 이런 행 위 를 바 꿨 다.RegExp 구조 함수 의 첫 번 째 매개 변수 가 정규 대상 이 라면 두 번 째 매개 변 수 를 사용 하여 수식 자 를 지정 할 수 있 습 니 다.그리고 돌아 오 는 정규 표현 식 은 기 존의 정규 표현 식 의 수식 자 를 무시 하고 새로 지정 한 수식 자 만 사용 합 니 다.
new RegExp(/abc/ig, 'i').flags
// "i"
위의 코드 에서 원래 정규 대상 의 장식 부 호 는 ig 이 고 두 번 째 매개 변수 i 로 덮어 씁 니 다.
문자열 의 정규 방법
문자열 대상 은 모두 4 가지 방법 이 있 습 니 다. 정규 표현 식
match()
, replace()
, search()
과 split()
을 사용 할 수 있 습 니 다.ES6 는 이 네 가지 방법 을 언어 내부 에서 모두 RegExp 의 인 스 턴 스 방법 을 호출 하여 정규 와 관련 된 모든 방법 을 RegExp 대상 에 정의 합 니 다.
String.prototype.match
RegExp. prototype [Symbol. match] String.prototype.replace
호출 RegExp. prototype [Symbol. replace] String.prototype.search
호출 RegExp. prototype [Symbol. search] String.prototype.split
호출 RegExp. prototype [Symbol. split]문자열 대상 은 모두 4 가지 방법 이 있 습 니 다. 정규 표현 식: match (), replace (), search (), split () 를 사용 할 수 있 습 니 다.
PS: 여기 서 여러분 께 매우 편리 한 정규 표현 식 도구 2 가 지 를 제공 합 니 다. 참고 하 시기 바 랍 니 다.
JavaScript 정규 표현 식 온라인 테스트 도구:http://tools.jb51.net/regex/javascript
정규 표현 식 온라인 생 성 도구:http://tools.jb51.net/regex/create_reg
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,, 및《 자 바스 크 립 트 수학 연산 용법 총 결 》.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.