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


Posted in Javascript onSeptember 27, 2008

判断是否存在中文和全角字符

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 相关文章推荐
JS中 用户登录系统的解决办法
Apr 15 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
jQuery中inArray方法注意事项分析
Jan 25 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
vuex与组件联合使用的方法
May 10 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
Ajax实现页面无刷新留言效果
Mar 24 Javascript
JS轻量级函数式编程实现XDM二
Jun 16 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
Sep 26 #Javascript
验证用户是否修改过页面的数据的实现方法
Sep 26 #Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 #Javascript
js每次Title显示不同的名言
Sep 25 #Javascript
Js动态创建div
Sep 25 #Javascript
自己开发Dojo的建议框架
Sep 24 #Javascript
Discuz! 6.1_jQuery兼容问题
Sep 23 #Javascript
You might like
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
import的本质解析
2017/10/30 Python
pandas通过索引进行排序的示例
2018/11/16 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
简单英文演讲稿
2014/01/01 职场文书
产假请假条
2014/04/10 职场文书
努力学习演讲稿
2014/05/10 职场文书
股东授权委托书范本
2014/09/13 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
会议新闻稿
2015/07/17 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android