JS 获取字符串中中文及标点符号个数

JS 获取字符串中中文及标点符号个数
今天在做文本框的长度限制时,由于数据库中存储的是字节长度,但前端可能会输入中文。前端对长度限制无法直接限制。在网上查找资料后解决问题,特此记录。

汉字正则

var re = /[\u4E00-\u9FA5]/g; 	
/g代表可多次匹配正则

中文标点正则

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]/g;

包含:

中文符号规则中文符号规则
\uff08\uff09
\u3008\u3009
\u300a\u300b
\u300c\u300d
\u300e\u300f
\ufe43\ufe44
\u3014\u3015
\u2026\u2014
\uff5e\ufe4f
\uffe5\u3001
\u3010\u3011
\uff0c\u3002
\uff1f\uff01
\uff1a\uff1b
\u201c\u201d
\u2018\u2019

统计字符串中包含字节数

function charNum(IdName){
	var hanziNum = 0;
	var biaodianNum = 0;
	var value = $('#+"IdName"+').val();
	if(value.match(re)!=null){
		hanziNum = value.match(re).length;
	}
	if(value.match(reg)!=null){
		biaodianNum =  value.match(reg).length;
	}
	//我在数据库中文字及符号均为三个字节,因此再加两倍
	return value.length + length+hanziNum * 2 + biaodianNum * 2;
}

参考:https://blog.csdn.net/cysear/article/details/80435756

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值