新浪微博字数统计 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 相关文章推荐
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
JavaScript极简入门教程(一):基础篇
Oct 25 Javascript
javascript实现获取服务器时间
May 19 Javascript
javascript显示上周、上个月日期的处理方法
Feb 03 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
JS中Map和ForEach的区别
Feb 05 Javascript
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
express异步函数异常捕获示例详解
Nov 30 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
php Smarty 字符比较代码
2011/02/27 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
javascript 写类方式之五
2009/07/05 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
详解python tkinter模块安装过程
2020/01/06 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
python温度转换华氏温度实现代码
2020/12/06 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
使用索引有什么好处
2016/07/27 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
广告业务员岗位职责
2015/02/13 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Python import模块的缓存问题解决方案
2021/06/02 Python
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Redis Cluster 集群搭建你会吗
2021/08/04 Redis