[5분 따라하기]
전화번호와 이메일 정규표현식
박재호(jrogue@gmail.com)
참고 자료
• <컴퓨터 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
오늘 소개할 내용
• 자바스크립트로 전화번호와 이메일 유효성을 어떻게 점검할 것인가?
• 전화번호 형식을 검증하는 form을 만들고 싶다면?
• RFC-5322(Internet Message Format)에 맞춰 이메일 유효성을 검증하고
싶다면?
• 주의: SMTP 주소 validation은 생각 이상으로 복잡하다 →
https://emailregex.com/email-validation-summary/
자바스크립트에서 사용 가능한 정규 표현식
• 기본적인 사항은 비슷하지만…
• ?: → 비캡처링 괄호 → 문자열 기억을 방지함
• 1 → 캡처링한 첫번째 패턴을 대체
전화번호 스크립트
$ 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
이메일 스크립트
$ 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
보면서 따라해봅시다~~~
• https://asciinema.org/a/316425
• https://asciinema.org/a/316426
참고 자료
• https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/
%EC%A0%95%EA%B7%9C%EC%8B%9D
• https://emailregex.com/

[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.
  • 8.