2023. 9. 10. 04:03γ0. TiL ( Today I Learned )
μ΄λ² LV κ²μν λ§λ€κΈ°λ₯Ό νλ©΄μ , λ‘κ·ΈμΈμ ꡬνν λμ μλμ 쑰건κ°μ νμ© νμ¬μΌ νλ€λ 쑰건κ°μ΄ μμλ€.
api λͺ μΈμλ§ μ κ²½μ¨μ λ§λ€λ€κ° 쑰건κ°μ΄ μλ€λκ±Έ λͺ¨λ₯΄κ³ μλ€κ° λ€λ¦κ² νμΈν΄μ μ κ·μμΌλ‘ μμ΄λ/λΉλ°λ²νΈλ₯Ό λ£μ΄ μ²λ¦¬νλ λ°©λ²μΌλ‘
νμΈν΄μ μ½λλ₯Ό μμ νλ€.
λλ€μμ μ΅μ 3μ μ΄μ, μνλ²³ λμλ¬Έμ(a~z, A~Z), μ«μ(0~9)λ‘ κ΅¬μ±νκΈ°
λΉλ°λ²νΈλ μ΅μ 4μ μ΄μμ΄λ©°, λλ€μκ³Ό κ°μ κ°μ΄ ν¬ν¨λ κ²½μ° νμκ°μ μ μ€ν¨λ‘ λ§λ€κΈ°
λ¨Όμ , μ κ·ννμ((Regular Expression)μ λν΄ μμλ΄€λ€.
μ κ·ννμμ λ¬Έμμ΄μμ νΉμ λ΄μ©μ μ°Ύκ±°λ λ체 λλ λ°μ·νλλ° μ¬μ©νλ€.
μλ₯Ό λ€μ΄ νμκ°μ
νλ©΄μμ μ¬μ©μλ‘ λΆν° μ
λ ₯ λ°λ μ νλ²νΈκ° μ ν¨νμ§ μ²΄ν¬ν νμκ° μλ€. μ΄λ μ κ·ννμμ μ¬μ©νλ©΄ κ°λ¨ν μ²λ¦¬ν μ μλ€.
λ°λ³΅λ¬Έκ³Ό 쑰건문μ μ¬μ©ν 볡μ‘ν μ½λλ μ κ·ννμμ μ΄μ©νλ©΄ λ§€μ° κ°λ¨νκ² ννν μ μλ€.
νμ§λ§! μ κ·ννμμ μ£Όμμ΄λ 곡백μ νμ©νμ§ μκ³ μ¬λ¬κ°μ§ κΈ°νΈλ₯Ό νΌν©νμ¬ μ¬μ©νκΈ° λλ¬Έμ κ°λ μ±μ΄ μ’μ§ μλ€λ λ¬Έμ κ° μλ€.
μΆμ² : https://poiemaweb.com/js-regexp
RegExp | PoiemaWeb
μ κ·ννμ(Regular Expression)μ λ¬Έμμ΄μμ νΉμ λ΄μ©μ μ°Ύκ±°λ λ체 λλ λ°μ·νλλ° μ¬μ©νλ€. μλ₯Ό λ€μ΄ νμκ°μ νλ©΄μμ μ¬μ©μλ‘ λΆν° μ λ ₯ λ°λ μ νλ²νΈκ° μ ν¨νμ§ μ²΄ν¬ν νμκ° μλ€.
poiemaweb.com
μ λ§ν¬μμ λ§μ μμκ° μμ§λ§, μμ£Όμ¬μ©νλ μ κ·ννμμ λͺκ°μ§λ₯Ό TILμ 체ν¬ν΄λμ΄μΌκ² λ€.
1) μ«μκ° λ§λμ§ κ²μ¬
const targetStr = '12345';
// λͺ¨λ μ«μμΈμ§ κ²μ¬
// [^]: λΆμ (not)μ μλ―Ένλ€. μλ₯Ό λ€μ΄ [^a-z]λ μνλ²³ μλ¬Έμλ‘ μμνμ§ μλ λͺ¨λ λ¬Έμλ₯Ό μλ―Ένλ€.
// [] λ°κΉ₯μ ^λ λ¬Έμμ΄μ μ²μμ μλ―Ένλ€.
const regexr = /^\d+$/;
console.log(regexr.test(targetStr)); // true
2) λ©μΌ μ£Όμ νμμ λ§λμ§ κ²μ¬
const email = 'ungmo2@gmail.com';
const regexr = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/;
console.log(regexr.test(email)); // true
3) νΈλν° λ²νΈ νμμ λ§λμ§ κ²μ¬
const cellphone = '010-1234-5678';
const regexr = /^\d{3}-\d{3,4}-\d{4}$/;
console.log(regexr.test(cellphone)); // true
4) νΉμλ¬Έμ ν¬ν¨μ 무 κ²μ¬
const targetStr = 'abc#123';
// A-Za-z0-9 μ΄μΈμ λ¬Έμκ° μλμ§ κ²μ¬
let regexr = /[^A-Za-z0-9]/gi;
console.log(regexr.test(targetStr)); // true
// μλ λ°©μλ λμνλ€. μ΄ λ°©μμ μ₯μ μ νΉμ λ¬Έμλ₯Ό μ νμ μΌλ‘ κ²μ¬ν μ μλ€.
regexr = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi;
console.log(regexr.test(targetStr)); // true
// νΉμ λ¬Έμ μ κ±°
console.log(targetStr.replace(regexr, '')); // abc123
[ κ³Όμ μ λν 쑰건μλν΄ λ΄κ° λ§λ μ ]
const nicknameRegex = /^(?=.*[0-9]+)[a-zA-Z][a-zA-Z0-9]{3,10}$/g
const passwordRegx = /^.{4,}$/;
^ : λ¬Έμμ΄μ μμ
(?=.*[0-9]+) : μ«μκ° ν¬ν¨λμ΄μμ΄μΌν¨
[a-zA-Z]: λμλ¬Έμ μμ΄κ° ν¬ν¨λμ΄μμ΄μΌν¨
[a-zA-Z0-9]{3,10}: μνλ²³ λμλ¬Έμ λλ μ«μκ° 3-10κ° μμ΄μΌν¨
$: λ¬Έμμ΄μ λμ μλ―Έν©λλ€.
g: μ μ κ²μμ μλ―Έν©λλ€.
^: λ¬Έμμ΄μ μμμ μλ―Έ
.: μμμ λ¬Έμλ₯Ό μλ―Έ
{4,}: μμμ λ¬Έμκ° 4κ° μ΄μ μ°μλμ΄μΌ ν¨
$: λ¬Έμμ΄μ λμ μλ―Έ

μμ¦ λ무 λ°λΉ μ μκ°μ΄ λ무 μμμ€
λ―ΏκΈ°μ§ μκ² μ§λ§ μ μ§μ§ μμ¦ μ§μλ§ μκ³ μ.. κ·Όλ° λ°μκ³ μ..
ν κ² λ§μμ... κ·Όλ° μκ°μ λκ°μλ€ λ¨λ©΄ ν루 μ§λμλλ°..
μ΄κ±° κΏμΈκ°?
μλ¬΄νΌ κΈ°μΉμ νμ΄ν ....
νλ΄λ΄ λλ€..
μΌλ¨ λ΄μΌμ ν΄λ λ¨λκΉ λ§μλλ€.. κΈ°λ¦Ώ..!