티스토리 뷰
종종 도메인 유효성 체크할 경우가 생긴다.
해당 글은 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/
'Web > Javascript' 카테고리의 다른 글
[Javascript] 파일첨부 "찾아보기..." 버튼 꾸미기 (0) | 2017.02.01 |
---|---|
자바스크립트 널 체크, javascript null check, javascript null 비교 (0) | 2014.09.17 |
[JavaScript] a Tag에서 Click시 Event 발생 (0) | 2013.06.18 |
[JavaScript] getElementById 를 크롬10 버전에서 사용할때의 주의점 (0) | 2012.11.06 |