小心了!不是BUG甚是BUG的正则

从来没遇到也没听说过正则匹配还有死循环的现象

说不是bug是因为java中和javascript 都能卡死,既然都能死循环说以那么就是我们写的有问题。

说是bug是因为就算匹配不到也应该返回false啊。这还闹出死循环了。



java:

public static boolean isDomainName(String domainName){
		if(null==domainName || domainName.trim().equals("")){
			return false ;
		}
		Pattern p = Pattern.compile( "^([0-9A-Za-z]|[\u4E00-\u9FA5])(-{0,1}([0-9A-Za-z]|[\u4E00-\u9FA5])+)*$" ); 
		Matcher m = p.matcher(domainName.trim());
		return m.matches() ;
	}
	
	public static void main(String args[]){
		String isFullDomainName = "international-criminal-police-organization---interpol";
		System.out.println("---");
		System.out.println(isDomainName(isFullDomainName));
	}


javascript:

var a = 'international-criminal-police-organization---interpol';
var reg = /^([0-9A-Za-z]|[\u4E00-\u9FA5])(-{0,1}([0-9A-Za-z]|[\u4E00-\u9FA5])+)*$/;
reg.test(a);

是不是很6;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值