일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 화살표2개
- CustomHook
- QueryClient
- tailwindCSS
- 부모패딩
- transition
- 문제해결
- 서초구보건소 #무료CPR교육
- 부모요소의 패딩 무시
- debouncing
- ?? #null병합연산자
- ignore padding
- DOM
- es6
- parent padding
- accordian
- 조건부스타일
- Carousel
- 제어컴포넌트
- useQueryClient
- ㅡ
- 함수형프로그래밍
- 리액트
- createPortal
- BlockFormattingContext
- BFC
- alias설정
- vite
- twoarrow
- react
Archives
- Today
- Total
프론트엔드 첫걸음
모든 문자 포함하는 정규식(한글, 일본어, 중국어 모두 포함) 본문
모든 나라의 문자를 포함하는 정규식은 유니코드 문자클래스 L 을 통해 만들수있다.
const wordRegex = /^[\p{L}]+$/u;
function testRegex(regex, word) {
if(regex.test(word)) {
return `${regex} test ${word} => pass`
}
return `${regex} test ${word} => fail`
}
console.log(testRegex(wordRegex, 'project')) // pas
console.log(testRegex(wordRegex, '不客气')) // pass
console.log(testRegex(wordRegex, 'ただいま。')) //fail (。 이것이 문자가 아니므로 fail)
console.log(testRegex(wordRegex, '!')) // fail (느낌표는 문자가 아니므로 fail)
See the Pen regex {L} by JEONG (@cona) on CodePen.
위 예제에서 일본어에서 사용되는 고리점(kuten)은 별도로 추가해야한다.
이를 위해 정규식에 문장부호 P 와 공백 Z를 포함하도록 수정하면 아래와 같다.
const wordRegex = /^[\p{L}\p{P}\p{Z}]+$/u;
function testRegex(regex, word) {
if(regex.test(word)) {
return `${regex} test ${word} => pass`
}
return `${regex} test ${word} => fail`
}
console.log(testRegex(wordRegex, '私の家には「ポチ」という名前の犬がいます。')) //pass
console.log(testRegex(wordRegex, '我很累,我需要休息,我想要去旅游。'))//pass
console.log(testRegex(wordRegex, 'He said "Hello, world!"'))//pass
See the Pen regex {L} by JEONG (@cona) on CodePen.
다른 유니코드 정규식을 사용하려면 다음을 참고하자.
https://ko.javascript.info/regexp-unicode
다음은 주요 문자 범주와 각각의 하위 범주 목록입니다.
- 문자(Letter) L:
- 소문자(lowercase) Ll
- 조정(modifier) Lm
- 단어의 첫 글자를 대문자로(titlecase) Lt
- 대문자(uppercase) Lu
- 기타(other) Lo
- 숫자(Number) N:
- 10진수(decimal digit) Nd
- 문자(letter number) Nl
- 기타(other) No
- 문장 부호(Punctuation) P:
- 연결선(connector) Pc
- 대시(dash) Pd
- 처음 따옴표(initial quote) Pi
- 마지막 따옴표(final quote) Pf
- 열기(open) Ps
- 닫기(close) Pe
- 기타(other) Po
- 표시(Mark) M (강세 등):
- 간격 결합(spacing combining) Mc
- 묶음(enclosing) Me
- 비공백(non-spacing) Mn
- 기호(Symbol) S:
- 통화(currency) Sc
- 수정(modifier) Sk
- 수학(math) Sm
- 기타(other) So
- 구분 기호(Separator) Z:
- 줄(line) Zl
- 단락(paragraph) Zp
- 공백(space) Zs
- 기타(Other) C:
- 제어(control) Cc
- 형식(format) Cf
- 할당되지 않음(not assigned) Cn
- 사용자 지정(private use) Co
- 서로게이트(surrogate) Cs
예를 들어 소문자를 찾아야 한다면 \p{Ll}을, 문장 부호를 찾아야 한다면 \p{P}를 사용하는 식으로 검색할 수 있습니다.
'개발 공부 > Javascript' 카테고리의 다른 글
익명함수와 클로저, 커링 (0) | 2024.12.23 |
---|---|
성능 최적화와 유지보수를 위한 Javascript Pattern (0) | 2024.09.01 |
URLSearchParams, URL 차이 (0) | 2024.02.02 |
getElementById 생략 (0) | 2023.11.02 |
함수형 프로그래밍 - 화살표 2개 함수 이해하기 (0) | 2023.03.24 |