More Related Content

Recently uploaded(20)

[5분 따라하기] 전화번호와 이메일 정규표현식

  1. [5분 따라하기] 전화번호와 이메일 정규표현식 박재호(jrogue@gmail.com)
  2. 참고 자료 • <컴퓨터 vs 책> 블로그 • http://jhrogue.blogspot.com/ • OKdevTV 유튜브 방송 • 오늘 방송: • https://www.youtube.com/watch?v=5- Iz8XQ_37A&list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL&index=3 • 5분 따라하기 리스트: • https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL • 슬라이드 셰어 • https://www.slideshare.net/jrogue/presentations • ASCIINEMA • https://asciinema.org/~jrogue
  3. 오늘 소개할 내용 • 자바스크립트로 전화번호와 이메일 유효성을 어떻게 점검할 것인가? • 전화번호 형식을 검증하는 form을 만들고 싶다면? • RFC-5322(Internet Message Format)에 맞춰 이메일 유효성을 검증하고 싶다면? • 주의: SMTP 주소 validation은 생각 이상으로 복잡하다 → https://emailregex.com/email-validation-summary/
  4. 자바스크립트에서 사용 가능한 정규 표현식 • 기본적인 사항은 비슷하지만… • ?: → 비캡처링 괄호 → 문자열 기억을 방지함 • 1 → 캡처링한 첫번째 패턴을 대체
  5. 전화번호 스크립트 $ cat - > phone.js var re = /(?:d{3}|(d{3}))([-/.])d{3}1d{4}/; console.log(re.exec("111-222-3333")); console.log(re.exec("(111)/222/3333")); console.log(re.exec("(111).222.3333")); console.log(re.exec("11-222-3333")); $ node phone.js [ '111-222-3333', '-', index: 0, input: '111-222-3333', groups: undefined ] [ '(111)/222/3333', ‘/', index: 0, input: '(111)/222/3333', groups: undefined ] [ '(111).222.3333', '.', index: 0, input: '(111).222.3333', groups: undefined ] null
  6. 이메일 스크립트 $ cat - > email.js var re = /^(([^<>()[].,;:s@"]+(.[^<>()[].,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a- zA-Z]{2,}))$/ console.log(re.exec("'foobar@example.com")); console.log(re.exec("foo.bar")); console.log(re.exec("foo@@bar")); console.log(re.exec("foo@@bar.com")); $ node email.js [ 'foobar@example.com', 'foobar', 'foobar', undefined, undefined, 'example.com', undefined, 'example.com', 'example.', index: 0, input: 'foobar@example.com', groups: undefined ] null null null
  7. 보면서 따라해봅시다~~~ • https://asciinema.org/a/316425 • https://asciinema.org/a/316426
  8. 참고 자료 • https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/ %EC%A0%95%EA%B7%9C%EC%8B%9D • https://emailregex.com/