标点符号个数"/>
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;
}
参考:
更多推荐
JS 获取字符串中中文及标点符号个数
发布评论