티스토리 뷰

종종 도메인 유효성 체크할 경우가 생긴다.


해당 글은 DVLP님의 글을 가져온 글이며, 문제가 될 경우 삭제할 수 있다.


아래는 DVLP님이 정리 해 놓은 내용.





자바스크립트 도메인 체크 정규식

구굴링에서 찾아보니깐 

function ValidUrl(str) {

  var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol

  '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name

  '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address

  '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path

  '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string

  '(\\#[-a-z\\d_]*)?$','i'); // fragment locator

  if(!pattern.test(str)) {

    return false;

  } else {

    return true;

  }

}


이런 함수가 있어서 이걸 사용해 볼려고 하니 우리나라에는 안맞는거 같아서 수정함.

http://우리나라.한국 

이런 도메인이 존재 할수 있는데 위 함수로는 체크가 안됨

그래서 아래 소스로 수정 하였습니다.

^(https?:\/\/)?((([a-z\d](([a-z\d-]*[a-z\d]))|([ㄱ-힣])*)\.)+(([a-zㄱ-힣]{2,}))|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$


function ValidUrl(str) {

  var pattern = new RegExp('^(https?:\\/\\/)?'+ // 프로토콜

  '((([a-z\d](([a-z\d-]*[a-z\d])|([ㄱ-힣]))*)\.)+[a-z]{2,}|'+ // 도메인명 <-이부분만 수정됨

  '((\\d{1,3}\\.){3}\\d{1,3}))'+ // 아이피

  '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // 포트번호

  '(\\?[;&a-z\\d%_.~+=-]*)?'+ // 쿼리스트링

  '(\\#[-a-z\\d_]*)?$','i'); // 해쉬테그들

  if(!pattern.test(str)) {

    return false;

  } else {

    return true;

  }

}


테스트 결과

http://domain.com
https://domain.com
http://www.domain.com.test.co.kr
https://www.domain.com
https://www.domain.c
https://www.domain.comses
HTTPS://WWW.DOMAIN.COM
HTTPS://WWW.DOMAIN.123
HTTPS://WWW.DOMAIN.COM
https://domaincom?ads=asdf23
http://안녕하세요.com
http://대한민국.한국
http://1234123.com
http://1234123.한국
http://127.0.0.1:8080?#hash
http://127.0.0.1:8080?test=1#hash


- copyright http://dvlp.tistory.com/

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함