正则表达式判断是否存在中⽂和全⾓字符和判断包含中⽂
字符串长度
判断是否存在中⽂和全⾓字符
str.match(/[^ 00- ff]/ig)
判断包含中⽂字符串长度
aMatch=str.match(/[^ 00- 80]/g);
str.length+(!aMatch?0:aMatch.length)
⼀种:
复制代码代码如下:
function _length(str){
var len=0;
for(var i=0;i<str.length;i++){
if(str.charAt(i)>'~'){len+=2;}else{len++;}
}
return len;
}
⼆种:
复制代码代码如下:
String.prototype.gblen = function() {
var len = 0;
for (var i=0; i<this.length; i++) {
if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
len += 2;
} else {
len ++;
}
}
return len;
}
String.prototype.gbtrim = function(len, s) {
var str = '';
var sp = s || '';
var len2 = 0;
for (var i=0; i<this.length; i++) {
if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
len2 += 2;
} else {
len2 ++;
}
}
if (len2 <= len) {
return this;
}
len2 = 0;
len = (len > sp.length) ? len-sp.length: len;
js中文正则表达式
for (var i=0; i<this.length; i++) {
if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
len2 += 2;
} else {
len2 ++;
}
if (len2 > len) {
str += sp;
break;
}
str += this.charAt(i);
}
return str;
}
var str1 = '世上最⽜的@#%&们世上最⽜的@#%&们';
document.write('str1 = '+ str1 +'
');
document.write('length = '+ str1.gblen() +'
');
document.write('gbtrim(10) = '+ str1.gbtrim(10) +'
');
document.write('gbtrim(10, \'…\') = '+ str1.gbtrim(10, '…') +'
');
document.write('gbtrim(12, \'-\' ) = '+ str1.gbtrim(12, '-') +'
');
// gbtrim(len 截取长度,按英⽂字节长度计算, s截取后的省略字符,如"…" )
// 备注:这⾥中⽂字符都是当作两个长度来计算的,所以gbtrim中的len为10时,是显⽰最多5个汉字的。// 当汉字数⼤于5时,由于截取后加上“…”,所以只显⽰4个汉字。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。