`
xs.cctv
  • 浏览: 20628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

域名规则校验Java版本

阅读更多
	/**
	 * 检查域名是否合法
	 * @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";
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics