正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度

 更新时间:2008年09月27日 15:35:56   作者:  
对于一些更安全的容错严重,需要用到
判断是否存在中文和全角字符

str.match(/[^\x00-\xff]/ig)

判断包含中文字符串长度
aMatch=str.match(/[^\x00-\x80]/g);

str.length+(!aMatch?0:aMatch.length)

javascript 判断中文字符长度

一种:
复制代码 代码如下:

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;
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个汉字。

相关文章

  • 用Javascript实现Windows任务管理器的代码

    用Javascript实现Windows任务管理器的代码

    在Windows系统上,自从98系统以来就提供了脚本宿主(Windows Scripting Host 简称WSH)的功能,WSH可以加载并运行JS和VBS脚本,并支持调用系统的COM组件,在COM组件的支持下脚本可以轻松实现非常强大的功能
    2012-03-03
  • 微信小程序开发之animation循环动画实现的让云朵飘效果

    微信小程序开发之animation循环动画实现的让云朵飘效果

    这篇文章主要介绍了微信小程序开发之animation循环动画实现的让云朵飘效果,结合实例形式分析了animation结合js时间函数实现循环动画效果的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • JS事件循环-微任务-宏任务(原理讲解+面试题分析)

    JS事件循环-微任务-宏任务(原理讲解+面试题分析)

    这篇文章主要介绍了JS事件循环-微任务-宏任务的原理,本文章含有面试题分析,不管是面试者还是想要学习相关内容的都可以很好的理解、掌握这部分内容,需要的朋友可以参考下
    2023-01-01
  • xcode中获取js文件的路径方法(推荐)

    xcode中获取js文件的路径方法(推荐)

    下面小编就为大家带来一篇xcode中获取js文件的路径方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 微信小程序 MinUI组件库系列之badge徽章组件示例

    微信小程序 MinUI组件库系列之badge徽章组件示例

    这篇文章主要介绍了微信小程序 MinUI组件库系列之badge徽章组件示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 微信小程序实现多列选择器

    微信小程序实现多列选择器

    这篇文章主要为大家详细介绍了微信小程序实现多列选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 理解javascript中的回调函数(callback)

    理解javascript中的回调函数(callback)

    这篇文章主要介绍了理解javascript中的回调函数(callback),本文着重于对回调函数概念的理解,需要的朋友可以参考下
    2014-09-09
  • 小程序原生实现左滑抽屉菜单

    小程序原生实现左滑抽屉菜单

    在移动端,侧滑菜单是一个很常用的组件,本文就详细的介绍小程序原生实现左滑抽屉菜单,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • js scrollTop如何到达指定位置

    js scrollTop如何到达指定位置

    很早之前就想分享这篇心得,幸之今天能在这里完成,好了,话不多说,进入正题。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 微信小程序实现多文件或者图片上传

    微信小程序实现多文件或者图片上传

    这篇文章主要为大家详细介绍了微信小程序实现多文件或者图片上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论