js 正则判断是中文,标点,英文符号,数字的 办法

var  a=fenGeString("和的撒恨不得把,。aadad;;..", 1);  //returnn 值可自己根据需求编辑
function fenGeString(str, num) { // 每num位就添加一个逗号
	var realLen = str.length;
	var re=/\r\n/;
	var qutrim =   str.replace(/\s+/g,"");
	qutrim=qutrim.replace(re,"\n")
	var trimLen = realLen - qutrim.length;
	/*console.log("qutrim[i]:" + qutrim);
	console.log("str:" + str);
	console.log("trimLen:" + trimLen);*/
	var qukongstr = str.replace(/\ /g, "");//判断字符是否是 空格
	var lenqukong = qukongstr.length;
	var sapceN = realLen - lenqukong;
	// 先将str转换为数组
	var strToArr = qukongstr.split('');
	var arr = [];
	var Abc = 0;
	var Num = 0;
	var Zhn = 0;
	var ZhnB = 0;
	var ENB = 0;
	var s = (str.split(' ')).length - 1;
	for (var i = 0; i < strToArr.length; i++) {
		var str1 = strToArr[i];
		var regNumber = /\d+/; // 验证0-9的任意数字最少出现1次。
		var regString = /[a-zA-Z]+/; // 验证大小写26个字母任意字母最少出现1次。
		if (regNumber.test(str1)) {//判断字符是否是 数字
			Num += 1;
		}
		if (regString.test(str1)) {//判断字符是否是 abc
			Abc += 1;
		}
		if(isChinese(str1)){
			Zhn += 1;
		}
		if(patchABCbiaodian(str1)){
			ENB += 1;
		}
		if(patchEn(str1)){
			ZhnB += 1;
		}
	}
	
//	console.log("space:" + s);
/*	console.log("abc:" + Abc);
	console.log("num:" + Num);
	console.log("Zhn:" + Zhn);
	console.log("ZhnB:" + ZhnB);
	console.log("ENB:" + ENB);
	console.log("sapceN:" + sapceN);
	console.log("alllen:" + realLen);*/
	var nw=Abc*10+num*10+Zhn*14+ZhnB*12+s*6+ENB*5;
	return nw;
}
//判断字符是否是 汉字
function isChinese(temp) {
//	var re = /\p{Unified_Ideograph}/u ;
	var regex = /(?:[\u3400-\u4DB5\u4E00-\u9FEF\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])/;
	if (regex.test(temp)){
		return true;
	}else{
		return false;
	}
}
//判断字符是否是 中文符号
function patchEn(temp) {
	 var reg = /[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/;
	 if(reg.test(temp)){
		 return true;
	 }else{
		 return false;
	 }
}
//判断字符是否是 英文半角符号
function patchABCbiaodian(temp) {
  var reg = /[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/;
	if(reg.test(temp)){
		return true;
	}else{
		return false;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值