教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php正则判断字符串是否为域名的方法分享

php正则判断字符串是否为域名的方法分享

发布时间:2016-08-11   编辑:jiaochengji.com
本文介绍下,在php编程中,用正则表达式判断某一字符串是否为域名的方法,有需要的朋友参考下吧。

通常匹配域名的格式要求:
 

1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。
2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。
3、由多个标号组成的完整域名总共不超过255个字符。

匹配域名的正则:
 

1、由英文数字 和 “_”组成    [-a-z0-9]
2、每级要以“.”连接
3、三级不能域名长度不超过20 {1,20}

来看一个例子,

<?php
$url = 'www.test.com';
$search = '/---正则N---/';
if(preg_match($search,$url)){
 echo '匹配';
}else {
 echo '不匹配';
} //edit by www.jbxue.com
?>

以下正则表达式,均来源于网络,供大家学习参考。

正则1
\b([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}\b
错误匹配:长度>60
 
正则2
^(([^-][a-z0-9A-Z-_]+\.)*)[^-][a-z0-9A-Z-_]+(\.[a-zA-Z]{2,4}){1,2}$
错误匹配:长度>60
错误匹配:www.te_st.com
 
正则3
(([\w\d\-_]+\.):?[^-_])+\w{2,4}
不匹配:test.com.cn
错误匹配:www.te_st.com
 
正则4
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?
暂无错误
 
正则5
(?<=\.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}
不能匹配二级域名
 
正则6
([a-z0-9][a-z0-9\-]*?\.(?:com|cn|net|org|gov|info|la|cc|co)(?:\.(?:cn|jp))?)$
一些顶级域名不能匹配,慎用。

您可能感兴趣的文章:
php正则判断字符串是否为域名的方法分享
php字符串操作函数入门篇
php正则表达式匹配中文的二个例子
php判断是否包含字符
php判断字符与字符串的包含方法属性
python如何使用正则表达式
python如何判断字符串不为空格
php判断日期格式是否正确的小例子
php判断字符串是否包含另一个字符串例子
js判断6个连续数字、去除字符串最后逗号的正则分享

[关闭]
~ ~