javascript中使⽤正则计算中⽂长度的例⼦
由于javascript是unicode编码的,所有的字符对于它来说⼀个就是⼀个,但是后台程序不是,通常在后台程序中⼀个中⽂是占两个字节的,这就导致了前后端校验长度不⼀致,这个问题可以通过正则来解决。
复制代码代码如下:
function getRealLen( str ) {
place(/[^ 00- ff]/g, '__').length; //这个把所有双字节的都给匹配进去了
}
附赠另⼀⼩则技巧:
有时候为了美观,不影响布局和界⾯,会以⼀些⽂案进⾏截字,但是中⽂的宽度和英⽂的宽度不⼀样,如果按照英⽂标准来截中⽂的,或者按中⽂标准截英⽂的,显然会忽长忽短,特别是昵称这类容易既有中⽂⼜有英⽂的东西,同样我们可以⽤上⾯的思路
复制代码代码如下:
function beautySub( str, len) {
var reg = /[\u4e00-\u9fa5]/g, //专业匹配中⽂
slice = str.substring(0,len),
realen = len - ( ~~( slice.match(reg) && slice.match(reg).length ) );
return slice.substring(0, realen ? realen : 1);正则匹配中文字
}
这⾥我们认为⼀个中⽂字符是两个英⽂字符的宽度,如果你是完美主义者,应该想到j和w,m的宽度是不⼀样的,w和m以及⼤写的部分字母和中⽂的宽度是⼀致的,这个函数的正则还有相当⼤的改进空间,同时也可以指定截字的起始位置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论