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


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 相关文章推荐
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
JS中判断JSON数据是否存在某字段的方法
Mar 07 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
JavaScript实现修改伪类样式
Nov 27 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
解决VUE双向绑定失效的问题
Oct 29 Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
May 12 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 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
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
python同时给两个收件人发送邮件的方法
2015/04/30 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
将python安装信息加入注册表的示例
2019/11/20 Python
python flask中动态URL规则详解
2019/11/22 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
通用C#笔试题附答案
2016/11/26 面试题
企划专员岗位职责
2013/12/09 职场文书
工作建议书范文
2014/05/13 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
React如何创建组件
2021/06/27 Javascript
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
JavaScript ES6的函数拓展
2022/01/18 Javascript