新浪微博字数统计 textarea字数统计实现代码


Posted in Javascript onAugust 28, 2011
/* 
* 从新浪微博上抄的 
* */ 
var getLength = (function(){ 
var trim = function(h) { 
try { 
return h.replace(/^\s+|\s+$/g, "") 
} catch(j) { 
return h 
} 
} 
var byteLength = function(b) { 
if (typeof b == "undefined") { 
return 0 
} 
var a = b.match(/[^\x00-\x80]/g); 
return (b.length + (!a ? 0 : a.length)) 
}; return function(q, g) { 
g = g || {}; 
g.max = g.max || 140; 
g.min = g.min || 41; 
g.surl = g.surl || 20; 
var p = trim(q).length; 
if (p > 0) { 
var j = g.min, 
s = g.max, 
b = g.surl, 
n = q; 
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; 
var h = 0; 
for (var m = 0, 
p = r.length; m < p; m++) { 
var o = byteLength(r[m]); 
if (/^(http:\/\/t.cn)/.test(r[m])) { 
continue 
} else { 
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { 
h += o <= j ? o: (o <= s ? b: (o - s + b)) 
} else { 
h += o <= s ? b: (o - s + b) 
} 
} 
n = n.replace(r[m], "") 
} 
return Math.ceil((h + byteLength(n)) / 2) 
} else { 
return 0 
} 
} 
})();
Javascript 相关文章推荐
用js模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
使用vuex缓存数据并优化自己的vuex-cache
May 30 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
vue 基于element-ui 分页组件封装的实例代码
Dec 10 Javascript
bootstrap中的导航条实例代码详解
May 20 Javascript
js实现随机数小游戏
Jun 28 Javascript
详解关于Vue单元测试的几个坑
Apr 26 Javascript
Javascript面向对象编程(三) 非构造函数的继承
Aug 28 #Javascript
Javascript面向对象编程(二) 构造函数的继承
Aug 28 #Javascript
Javascript 面向对象编程(一) 封装
Aug 28 #Javascript
Javascript继承机制的设计思想分享
Aug 28 #Javascript
有关JavaScript的10个怪癖和秘密分享
Aug 28 #Javascript
JS面向对象编程浅析
Aug 28 #Javascript
用JS实现一个TreeMenu效果分享
Aug 28 #Javascript
You might like
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
php实现读取超大文件的方法
2014/07/28 PHP
linux中cd命令使用详解
2015/01/08 PHP
8个必备的PHP功能开发
2015/10/02 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
Python FTP操作类代码分享
2014/05/13 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python卸载模块的方法汇总
2016/06/07 Python
python简单实现获取当前时间
2016/08/27 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
python 使用shutil复制图片的例子
2019/12/13 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
运动会方阵口号
2014/06/07 职场文书
2014年人事部工作总结
2014/12/03 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
趣味运动会开幕词
2015/01/28 职场文书
电频谱管理的原则是什么
2022/02/18 无线电