6일차 - 정규표현식
in Study-siotz on TIL
추후에 정리가 필요한 문서입니다!!!
6일차
- 안시옷님의 정규표현식
1. 정규표현식
1. 패턴
단순 패턴
문자열을 있는 그대로 대응
`/abc/`
abcddd - 대응
ab cdd - 대응하지 않음 (공백도 문자열로 취급)
특수 문자
패턴 안에서의 특수문자는 의미를 가진다
^
- 문자열의 시작 부분
- 다중행 플래그(m)(내가 검사하고 싶은 문자열이 여러줄일때)가 설정되어 있다면, 행들의 첫 문자들이 대응된다.
`/^a/` - 'an A'의 a와 대응됨
`/^A/` - 'an A'의 A와 대응되지 않음
$
- 문자열의 끝 부분
- 다중행 플래그가 설정되어있다면, 행들의 마지막 문자들이 대응된다.
`/t$/`
- 'eat'의 t와 대응됨
- 'eater'의 t와 대응되지않음
*
- 바로 앞의 표현식이 0회 이상 연속으로 반복되는 부분
`/go*/` => g는 단순패턴 + o\*는 반복패턴
- 'goood'의 gooo와 대응 됨
- 'groot' 의 g와 대응 됨(0회 이상 - 0회도 포함)
- 'bogusipo' 의 g와 대응 됨
+
- 바로 앞의 표현식이 1회 이상 연속으로 반복되는 부분
?
- 바로 앞의 표현식이 0회 또는 1회 등장하는 부분
`/io?/`
- 'siotz'의 io와 대응
- 'sioots'의 io와 대응 => ioo의 마지막 o는 대응값으로 나오지 않고 io만 대응된다는 점!!
- 'sits'의 i와 대응
- 수량자 *, +, ?, {} 바로 뒤에 사용하면, 앞 수량자의 최소 횟수에 맞춰 대응시키게 하는 기능이 있음.
/1+/ - '11123'의 '111'과 대응
/1+?/ - '11123'의 '1'과 대응 (1회가 최소 횟수)
.
- 개행 문자를 제외한 모든 단일 문자.(공백도 포함 됨-공백은 개행문자가 아님)
- 개행 문자(LF, CR, CRLF)
`/.s/`
- 이 정규 표현식은 어떤 문자(개행문자 제외) 바로 뒤에 s가 온 형태의 문자열과 대응됨
- 'siotz'의 **ts**와 대응
(x)
- 괄호 안의 문자열과 대응되고, 그것(대응 된 문자열)을 기억한다.
- 포획 괄호라 불린다.
()
안의 표현식을 하나의 단위로 취급한다.- 기억 한 문자열을
\b
단어 경계와 대응 단어 경계는 다른 ‘단어 문자’가 앞이나 뒤에 없는 부분을 말한다. 단어 문자 : 로마자 소문자와 대문자, 10진수 숫자, 밑줄 문자로만 구성되어있다. (공백은 포함하지 않는다.) 단어의 앞이나 뒤가 무조건 경계여야 한다. 자바스크립트의 정규식 엔진에서 ‘단어 문자’란 로마자 소문자와 대문자, 10진수 숫자, 밑줄 문자로만 구성되어있습니다. 이 외의 문자들은 모두 단어 분리로 취급됩니다. 단어 경계는 대응 결과에 포함되지 않음
^
,$
는 문자열 (문장)의 시작과 끝이고,\b
는 단어의 맨 앞글자 또는 맨 뒷글자이다(공백은 포함하지 않으니)
2. ES5 vs ES6(ES2015)
1. ECMAScript
스크립트 언어의 표준.
2. ES의 버전 관리
ES3 -> ES5(2009) -> ES2015 -> ES2016
ES5의 다음부터 해당 버전이 공개된 연도를 버전 번호로 사용합니다. 즉, ES5의 다음 버전의 이름은 ES6이 아니라 ES2015 입니다.
ES5 vs ES2015 10가지 비교
1. 기본 매개변수
2. 템플릿 리터럴
3. 멀티라인 문자열
4. 분해대입
5. 향상된 객체 리터럴
6. 화살표 함수
7. Promise
8. 블록스코프의 let과 const
9. 클래스
10. 모듈
- Ajax란 무엇인가 ?
자바스크립트를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고받는 기술이고, XHR 객체를 이용해서 웹페이지 전체를 리로드하지않고 페이지의 일부만을 로딩한다.
- Ajax를 사용하면 문제가 있다. 그 문제는 무엇인가?
히스토리 관리가 어려워서 보안에 더 신경을 써주어야하고,
동일출처정책으로 인해 다른 도메인과는 통신이 불가능하다는 문제가 있다.