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

 更新时间: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设计模式之构造函数模式实例教程

    JavaScript设计模式之构造函数模式实例教程

    这篇文章主要介绍了JavaScript设计模式之构造函数模式,结合实例形式分析了构造函数模式的概念、功能、定义及使用方法,需要的朋友可以参考下
    2018-07-07
  • 微信小程序静默登录的实现代码

    微信小程序静默登录的实现代码

    这篇文章主要介绍了微信小程序静默登录的实现代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 原生js仿浏览器滚动条效果

    原生js仿浏览器滚动条效果

    本文主要介绍了原生js仿浏览器滚动条效果的实例。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • 用JS提交参数创建form表单在FireFox中遇到的问题

    用JS提交参数创建form表单在FireFox中遇到的问题

    在一个前端页面上,需要通过JavaScript来提交参数,使用JS创建form表单,将参数append到表单中进行提交,接下来将介绍如何操作与实现
    2013-01-01
  • 使用threejs实现滚动效果的示例代码

    使用threejs实现滚动效果的示例代码

    某一天我在刷抖音时,看到一个UI设计师分享了一个好看的网页滚动动效设计,那种飘逸流畅的动画效果立刻抓住了我的眼球,我脑海里立刻开始想象用代码如何实现这个效果,所以本文给大家分享了如何使用threejs实现滚动效果,感兴趣的朋友可以参考下
    2024-01-01
  • 小程序二次贝塞尔曲线实现购物车商品曲线飞入效果

    小程序二次贝塞尔曲线实现购物车商品曲线飞入效果

    这篇文章主要介绍了小程序二次贝塞尔曲线实现购物车商品曲线飞入效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • JavaScript中Number的对象解析

    JavaScript中Number的对象解析

    这篇文章主要介绍了JavaScript中Number的对象解析,Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用,感兴趣的朋友可以参考一下下面文章内容
    2022-08-08
  • escape、encodeURI 和 encodeURIComponent 的区别

    escape、encodeURI 和 encodeURIComponent 的区别

    escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者,今天我就在这里对这三个方法详细地分析与比较一下。
    2009-03-03
  • Electron点击穿透不规则窗体的透明区域的实现

    Electron点击穿透不规则窗体的透明区域的实现

    本文主要介绍了Electron点击穿透不规则窗体的透明区域的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JS如何设置iOS中微信浏览器的title

    JS如何设置iOS中微信浏览器的title

    本文给大家分享js设置ios中微信浏览器中的title的解决方法,实现原理比较简单,对js微信浏览器title相关知识感兴趣的朋友一起通过本文学习吧
    2016-11-11

最新评论