/**
* 检查域名是否合法
* @param domain
* @return 返回"LEGAL"成功
* 其余就返回不合法消息
*/
public static String domainCheckLegal(String domain){
Pattern p = null;
Matcher m = null;
boolean b = false;
String str = null;
//可以包含中文、字母a-z(大小写等价)、数字0-9或者半角的连接符"-","-"不能放在开头或结尾
String reg ="^(?!-)(?!.*?-$)[-a-zA-Z0-9\\u4e00-\\u9fa5]*$";
p = Pattern.compile(reg);
m = p.matcher(domain);
b = m.matches();
if(!b){
return "不符合域名注册规定";
}
str = m.group();
// if(str.length()>=3){
// if(str.substring(2,3).equals("-")){
// return " “-”符号不能出现在第三和第四位 ";
// }
// }
// if(str.indexOf("-")==2||str.indexOf("-")==3){
// return " “-”符号不能出现在第三和第四位 ";
// }
/*
reg = "[\\u4e00-\\u9fa5]";//中文必须有1个
p = Pattern.compile(reg);
m = p.matcher(str);
if(!m.find()){
return "必须有一个中文";
}
*/
reg = "^[\\u4e00-\\u9fa5]+$";//纯汉字必须大于1位
p = Pattern.compile(reg);
m = p.matcher(domain);
b = m.matches();
if(b){
String chinese = m.group();
if(chinese.length()<2||chinese.length()>20){
return "纯中文必须大于1个小于21个";
}
}else{
//判断punycode长度
if(str.length()<3){
return "长度必须大于2!";
}
//如果第一位、二位不是中文,就判断第三、四位是否是“-”
String str1 = str.substring(0,3);;
String reg1 ="^[-a-zA-Z0-9]*$";
p = Pattern.compile(reg1);
m = p.matcher(str1);
b = m.matches();
if(b){
if(str.indexOf("-")==2||str.indexOf("-")==3){
return " “-”符号不能出现在第三和第四位 ";
}
}
//长度为63位
// str = Punycode.encode(str);//转换成punycode 不用转化
// if(str.length()>59){
// return "您输入的域名过长!";
// }
//判断输入的域名是否超长
int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]";
for(int i=0;i<str.length();i++){
String temp = str.substring(i,i+1);
if(temp.matches(chinese)){
valueLength += 2;
}else{
valueLength++;
}
}
if(valueLength>63){
return "您输入的域名长度大于63位";
}
}
return "LEGAL";
}
域名规则校验Java版本
最新推荐文章于 2024-08-16 09:58:29 发布