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


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 相关文章推荐
IE 缓存策略的BUG的解决方法
Jul 21 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
基于jQuery实现在线选座之高铁版
Aug 24 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
JS验证码实现代码
Sep 14 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 Javascript
Echarts实现单条折线可拖拽效果
Dec 19 Javascript
在react中使用vue的状态管理的方法示例
May 02 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 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实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
Python实现的石头剪子布代码分享
2014/08/22 Python
Python 正则表达式(转义问题)
2014/12/15 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
环保专项行动方案
2014/05/12 职场文书
十佳青年事迹材料
2014/08/21 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
公务员检讨书
2014/11/01 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
个人自荐书范文
2015/03/09 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
整改通知书格式
2015/04/22 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js