新浪微博字数统计 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之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
script标签属性用type还是language
Jan 21 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
小程序实现五星点评效果
Nov 03 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
layui实现鼠标移动到单元格上显示数据的方法
Sep 11 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
Vue实现简易计算器
Feb 25 Javascript
Vue实现点击箭头上下移动效果
Jun 11 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 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五种设计模式小结
2011/03/23 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
joomla组件开发入门教程
2016/05/04 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
使用python实现画AR模型时序图
2019/11/20 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
详解python对象之间的交互
2020/09/29 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
团队激励口号
2014/06/06 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
婚宴新郎致辞
2015/07/28 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
mysql幻读详解实例以及解决办法
2022/06/16 MySQL