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


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 相关文章推荐
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
jQuery 插件开发指南
Nov 14 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
vue中的event bus非父子组件通信解析
Oct 27 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
微信小程序实现列表的横向滑动方式
Jul 15 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实现图象锐化代码
2007/06/14 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
浅谈Fetch 数据交互方式
2018/12/20 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
python简单获取数组元素个数的方法
2015/07/13 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python类如何定义私有变量
2020/02/03 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
职工运动会感言
2014/02/07 职场文书
党员领导干部承诺书
2014/05/28 职场文书
暑期实践个人总结
2015/03/06 职场文书
求职自我评价怎么写
2015/03/09 职场文书