πŸ”‘JS | μ •κ·œν‘œν˜„μ‹

μ›μ˜Β·2023λ…„ 4μ›” 17일
1

μƒˆλ‘œμš΄ μ§€μ‹πŸ’‘

λͺ©λ‘ 보기
3/15

πŸ”Žμ •κ·œν‘œν˜„μ‹

  • μ •κ·œ ν‘œν˜„μ‹μ€ λ¬Έμžμ—΄μ—μ„œ νŠΉμ • 문자 쑰합을 μ°ΎκΈ° μœ„ν•œ νŒ¨ν„΄
  • JavaScriptμ—μ„œ μ •κ·œν‘œν˜„μ‹μ€ 객체
  • RegExp μƒμ„±μžλ₯Ό μ‚¬μš©ν•  수 있고, String의 match(), matchAll(), replace(), replaceAll(), search(), split() λ©”μ„œλ“œμ™€λ„ ν•¨κ»˜ μ‚¬μš© κ°€λŠ₯

πŸ’‘ν”Œλž˜κ·Έ

  • κ³ κΈ‰ 검색을 μ„€μ •
    g : μ „μ—­ 검색
    i : λŒ€μ†Œλ¬Έμž ꡬ뢄 X
    m : μ—¬λŸ¬ 쀄 검색

πŸ’‘κΈ°λ³Έ λ¬Έμžμ—΄

  • replace() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ νŠΉμ • λ¬Έμžμ—΄ 1개만 νŠΉμ • λ¬Έμžμ—΄λ‘œ λ§€μΉ­μ‹œμΌœ λ³€κ²½
'이름을 μ΄λ¦„μœΌλ‘œ λ°”κΏ”μ£Όμ„Έμš”'.replace('이름', 'μ›μ˜')

// κ²°κ³Ό
// 'μ›μ˜μ„ μ΄λ¦„μœΌλ‘œ λ°”κΏ”μ£Όμ„Έμš”'
  • μ •κ·œν‘œν˜„μ‹κ³Ό flag인 gλ₯Ό μ΄μš©ν•΄ νŠΉμ • λ¬Έμžμ—΄ 전체λ₯Ό λ³€κ²½
'이름을 μ΄λ¦„μœΌλ‘œ λ°”κΏ”μ£Όμ„Έμš”'.replace(/이름/g, 'μ›μ˜')

// κ²°κ³Ό
// 'μ›μ˜μ„ μ›μ˜μœΌλ‘œ λ°”κΏ”μ£Όμ„Έμš”'

πŸ’‘μ‹œμž‘κ³Ό 끝 λ¬Έμžμ—΄ μ„€μ •

^ : νŠΉμ • λ¬Έμžμ—΄λ‘œ μ‹œμž‘ν•˜λŠ” 문자

/^μ›μ˜/g
  • 'μ›μ˜'μ΄λΌλŠ” λ¬Έμžμ—΄λ‘œ μ‹œμž‘, μ•„λž˜ λ¬Έμžμ—΄ 쀑 ν•΄λ‹Ήν•˜λŠ” λ¬Έμžμ—΄ ν‘œμ‹œ
    원
    영
    μ›μ˜
    μ›μ˜μ›μ˜

  • 'μ›μ˜μ›μ˜' 전체가 ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” 이유 : μ •κ·œν‘œν˜„μ‹μ— 쑰건을 'μ›μ˜'으둜만 μ‹œμž‘ν•˜κ²Œ 두고 뒀에 μΆ”κ°€λ‘œ λΆ™λŠ” λ¬Έμžμ—΄μ— λŒ€ν•œ μ„€λͺ…이 μ—†μ–΄μ„œ


$ : νŠΉμ • λ¬Έμžμ—΄λ‘œ λλ‚˜λŠ” 문자

/μ›μ˜$/g
  • 'μ›μ˜'μ΄λΌλŠ” λ¬Έμžμ—΄λ‘œ 끝, μ•„λž˜ λ¬Έμžμ—΄ 쀑 ν•΄λ‹Ήν•˜λŠ” λ¬Έμžμ—΄ ν‘œμ‹œ
    원
    영
    μ›μ˜
    μ›μ˜μ›μ˜

πŸ’‘μ„ νƒμ§€λ“€ 쀑 1개 맡핑

[] : μ•ˆμ˜ λ¬Έμžλ“€ 쀑 1κΈ€μž 선택

/[μ›μ˜]/g
  • '원' '영' 쀑 1κΈ€μž 선택
    원
    영
    μ›μ˜

πŸ’‘λ²”μœ„ 지정

λ²”μœ„μ‹œμž‘-λ²”μœ„λ : μ•„μŠ€ν‚€μ½”λ“œ κΈ°μ€€ λ²”μœ„ 지정

/[a-zA-Z0-9]/g

// μ•ŒνŒŒλ²³ λŒ€λ¬Έμž, μ†Œλ¬Έμž, 숫자 쀑 1문자
  • A-Z : μ•ŒνŒŒλ²³ λŒ€λ¬Έμž
  • a-z : μ•ŒνŒŒλ²³ μ†Œλ¬Έμž
  • 0-9 : 숫자

πŸ’‘λΆ€μ •

[^] : λŒ€κ΄„ν˜Έ [ ] μ•ˆμ—μ„œ λΆ€μ • 의미

/원[^영]/g
  • '원' 으둜 μ‹œμž‘ν•˜κ³  '영' 으둜 λλ‚˜μ§€ μ•ŠλŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜

πŸ’‘λ¬Έμž 단좕 ν‘œκΈ°

. : μž„μ˜μ˜ λͺ¨λ“  문자 1개 의미

/μ›μ˜../g
  • 'μ›μ˜' λ¬Έμžμ—΄ 뒀에 2개의 아무 λ¬Έμžκ°€ 뢙은 ν˜•νƒœ
    원
    영
    μ›μ˜
    μ›μ˜μ›μ˜

\d : 숫자 1κΈ€μž 의미, [0-9]와 같은 뜻
\D : 숫자 μ œμ™Έν•œ 1κΈ€μž 의미, [^0-9]와 같은 뜻

\w : 영문자, 숫자, _(μ–Έλ”μŠ€μ½”μ–΄) 쀑 1κΈ€μž 의미, [_a-zA-Z0-9]와 같은 뜻
\W : 영문자, 숫자, _(μ–Έλ”μŠ€μ½”μ–΄) μ œμ™Έν•œ 1κΈ€μž 의미, [^_a-zA-Z0-9]와 같은 뜻

\s : 곡백 문자(곡백 문자, νƒ­ 문자, κ°œν–‰ 문자 λ“±) 1κΈ€μž 의미
\S : 곡백 문자 μ œμ™Έν•œ 1κΈ€μž 의미


πŸ’‘μˆ˜λŸ‰μž

* : μ•žμ˜ 문자 0개 ~ n개

/원*영/g
  • '원' 이 0개 이상, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜
    μ›μ›μ˜

+ : μ•žμ˜ 문자 1개 ~ n개

/원+영/g
  • '원' 이 1개 이상, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜
    μ›μ›μ˜

? : μ•žμ˜ 문자 0개 ~ 1개

/원?영/g
  • '원' 이 0개 ν˜Ήμ€ 1개, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜
    μ›μ›μ˜

{} : 문자 개수 λ²”μœ„ 지정

  • {n} : μ•žμ˜ 문자 n개
    {n,} : μ•žμ˜ 문자 n개 이상
    {n,n+i} : μ•žμ˜ 문자 n개 ~ n+i개
/원{2}영/g
  • '원' 이 2개, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    μ›μ˜
    μ›μ›μ˜
    μ›μ›μ›μ˜
    μ›μ›μ›μ›μ˜
/원{2,}영/g
  • '원' 이 2개 이상, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    μ›μ˜
    μ›μ›μ˜
    μ›μ›μ›μ˜
    μ›μ›μ›μ›μ˜
/원{2,3}영/g
  • '원' 이 2개 ~ 3개 사이, '영' 으둜 λλ‚˜λŠ” λ¬Έμžμ—΄ 선택
    μ›μ˜
    μ›μ›μ˜
    μ›μ›μ›μ˜
    μ›μ›μ›μ›μ˜

πŸ’‘κ·Έλ£Ήν•‘

() : νŒ¨ν„΄μš”μ†Œλ₯Ό μ†Œκ΄„ν˜Έλ‘œ λ¬Άμ–΄μ„œ λΆ€λΆ„μ μœΌλ‘œ κ·Έλ£Ήν™”

  • κ·Έλ£Ήν™”ν•œ λΆ€λΆ„ * , + , ? λ“±μ˜ μˆ˜λŸ‰μž μ‚¬μš©ν•΄ λ°˜λ³΅κ°€λŠ₯
/(원|영)/g
  • | μ΄μš©ν•΄ 선택 λ²”μœ„ 쀄일 수 있음
  • 원 or 영 ν•΄λ‹Ή
    원
    영
    원 영
    원 영 원 영

?= : 전방탐색, 뒀에 νŠΉμ • λ¬Έμžμ—΄μ΄ λ‚˜μ˜€λŠ” λ¬Έμžμ—΄

/원(?=영)/g
  • 원 뒀에 영이 λ‚˜μ˜€λŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜

?<= : 후방탐색, μ•žμ— νŠΉμ • λ¬Έμžμ—΄μ΄ λ‚˜μ˜€λŠ” λ¬Έμžμ—΄

/(?<=원)영/g
  • 원 뒀에 영이 λ‚˜μ˜€λŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜

?! : 전방뢀정탐색, 뒀에 νŠΉμ • λ¬Έμžμ—΄μ΄ λ‚˜μ˜€μ§€ μ•ŠλŠ” λ¬Έμžμ—΄

/원(?!영)/g
  • 원 뒀에 영이 λ‚˜μ˜€μ§€ μ•ŠλŠ” λ¬Έμžμ—΄ 선택
    원
    영
    μ›μ˜


πŸ”Žμ‚¬μš©ν•˜κΈ°

πŸ’‘RegExp 객체 μ‚¬μš©ν•œ λ¦¬ν„°λŸ΄ 방식

  • λΉ—κΈˆμœΌλ‘œ 감싸야 함
  • λ”°μ˜΄ν‘œ μ‚¬μš© X
let reg = new RegExp(/ab+c/, 'g')

πŸ’‘RegExp 객체 μ‚¬μš©ν•œ μƒμ„±μž 방식

  • λΉ—κΈˆμœΌλ‘œ 감싸지 X
  • λ”°μ˜΄ν‘œ μ‚¬μš©
let reg = new RegExp('ab+c', 'g')

μ‚¬μš©μ˜ˆμ‹œ

let reg = new RegExp('ab+c', 'g')
'aabbccabc'.match(reg)

// λ°˜ν™˜κ°’ : ['abbc', 'abc']
'aabbccabc'.replace(/ab+c/g, '')

// λ°˜ν™˜κ°’ : 'ac'

β“μ „ν™”λ²ˆν˜Έλ₯Ό μ •κ·œμ‹μœΌλ‘œ ν‘œν˜„ν•˜κΈ°
[0-9]{2,3}[-.* ]?[0-9]{3,4}[-.* ]?[0-9]{4}

❓이메일을 μ •κ·œμ‹μœΌλ‘œ ν‘œν˜„ν•˜κΈ°
[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]

profile
ν™”μ΄νŒ…~~^ㅁ^/

0개의 λŒ“κΈ€