新浪微博字数统计 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 相关文章推荐
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
Js 正则表达式知识汇总
Dec 02 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
JavaScript性能优化之小知识总结
Nov 20 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
vue构建单页面应用实战
Apr 10 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
May 23 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多文件上传实例
2015/07/09 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
Javascript base64编码实现代码
2011/12/02 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
js实现简单计算器
2015/11/22 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
详解python读取image
2019/04/03 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Django 路由控制的实现
2019/07/17 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
python中time.ctime()实例用法
2021/02/03 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
高三历史教学反思
2014/01/09 职场文书
物业招聘计划书
2014/01/10 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL