어떤문자열변수를 도메인네임에 사용될수있는문자열인지를 검사

jjjjrr의 이미지

안녕하세요
어떤문자열변수를 도메인네임에 사용될수있는문자열인지를 검사해야됩니다
규칙을 보면
"'A-Z', 'a-z', '0-9', '-' 가 사용될 수 있다 또한 하이픈이 앞/뒤에 사용될 수 없고, 도트로 분리되는 각 문자열(Each segment)은 최고 63 단어(octet)까지 사용할 수 있도록 되어있다"
라고되있는데여
어떻게 검사하는코드를 작성해야될까요
한글도 허용이안되는데여
조언부탁드립니다

맹고이의 이미지

^(http|https|ftp)\://((([a-z_0-9\-]+)+(([\:]?)+([a-z_0-9\-]+))?)(\@+)?)?(((((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))))|((([a-z0-9\-])+\.)+([a-z]{2}\.[a-z]{2}|[a-z]{2,4})))(([\:])(([1-9]{1}[0-9]{1,3})|([1-5]{1}[0-9]{2,4})|(6[0-5]{2}[0-3][0-6])))?$

Matches:

http://user:user@www.someplace.com:12345
ftp://user@ftp.someplace.com:32133
https://12.12.12.12:12

Non-matches:

someplace.com
http://255.255.255.256
12.12.12.12 

말씀하신 규칙과는 상관없지만
혹시 도움되실까봐 올려봅니다... =3==3