计算新浪Weibo消息长度(还可以输入119字)


Posted in Javascript onJuly 02, 2013

此文为计算新浪Weibo的消息长度的方法. 就是 (发言请遵守社区公约,还可以输入119字).

var getMessageLength = (function() { 
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(message) { 
message = message || ''; 
message = message.replace(/\r\n/g, "\n"); 
var c = 41, 
d = 140, 
e = 20, 
f = message, 
g = message.match(/http:\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z_\$\.\+\!\*\(\)\/,:;@&=\?\~\#\%]*)*/gi) || [], 
h = 0; for(var i = 0, j = g.length; i < j; i++) { 
var k = byteLength(g[i]); 
if(/^(http:\/\/t.cn)/.test(g[i])) { 
continue; 
} 
/^(http:\/\/)+(t.sina.com.cn|t.sina.cn)/.test(g[i]) || /^(http:\/\/)+(weibo.com|weibo.cn)/.test(g[i]) ? h += k <= c ? k : k <= d ? e : k - d + e : h += k <= d ? e : k - d + e; 
f = f.replace(g[i], ""); 
} 
var l = Math.ceil((h + byteLength(f)) / 2); 
return l; 
}; 
})();

getMessageLength('昨天电脑的硬盘坏了,我发邮件给美国国家安全局,他们竟然不肯把备份的内容发给我!'); //39
Javascript 相关文章推荐
jQuery学习笔记之jQuery的动画
Dec 22 Javascript
js遍历td tr等html元素
Dec 13 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
原生JavaScript编写俄罗斯方块
Mar 30 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
May 09 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
javascript获取元素的计算样式
May 24 Javascript
Vue程序调试的方法
Jun 17 Javascript
Vue 嵌套路由使用总结(推荐)
Jan 13 Javascript
JS实现可控制的进度条
Mar 25 Javascript
jquery获取iframe中的dom对象(两种方法)
Jul 02 #Javascript
JS实现可改变列宽的table实例
Jul 02 #Javascript
js 图片随机不定向浮动的实现代码
Jul 02 #Javascript
js猜数字小游戏的简单实现代码
Jul 02 #Javascript
jQuery中获取Radio元素值的方法
Jul 02 #Javascript
js网页版计算器的简单实现
Jul 02 #Javascript
js实现广告漂浮效果的小例子
Jul 02 #Javascript
You might like
php 在线打包_支持子目录
2008/06/28 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
Python生成随机密码
2015/03/10 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
django中模板的html自动转意方法
2018/05/27 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Django框架验证码用法实例分析
2019/05/10 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
大学生求职推荐信
2013/11/27 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
Django如何与Ajax交互
2021/04/29 Python