新浪微博字数统计 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 相关文章推荐
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
一个cssQuery对象 javascript脚本实现代码
Jul 21 Javascript
菜鸟javascript基础整理1
Dec 06 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
jquery实现超简洁的TAB选项卡效果代码
Aug 28 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
vue使用video插件vue-video-player详解
Oct 23 Javascript
Vue和Flask通信的实现
May 19 Vue.js
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中几种常见的超时处理全面总结
2012/09/11 PHP
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
python抓取网页中链接的静态图片
2018/01/29 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
J2EE中常用的名词进行解释
2015/11/09 面试题
大学生社会实践评语
2014/04/25 职场文书
八项规定整改方案
2014/10/01 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
安全先进个人材料
2014/12/29 职场文书
Python中for后接else的语法使用
2021/05/18 Python
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
python中filter,map,reduce的作用
2022/06/10 Python