计算新浪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 animate图片模向滑动示例代码
Jan 26 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
Dec 04 Javascript
给js文件传参数(详解)
Jul 13 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
详解Bootstrap插件
Apr 25 Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
vue实现百度语音合成的实例讲解
Oct 14 Javascript
Vue3.0 手写放大镜效果
Jul 25 Vue.js
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中实现中文字符进制转换原理分析
2011/12/06 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
javascript 模拟点击广告
2010/01/02 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
jquery禁用右键示例
2014/04/28 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
js中的闭包学习心得
2018/02/06 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
Python字符串逐字符或逐词反转方法
2015/05/21 Python
常用python编程模板汇总
2016/02/12 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
python requests使用socks5的例子
2019/07/25 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
Python创建临时文件和文件夹
2020/08/05 Python
在C#中如何实现多态
2014/07/02 面试题
Linux操作面试题
2012/05/16 面试题
技术合作协议书范本
2014/04/18 职场文书
幼师求职自荐信
2014/05/31 职场文书
2015年维修工作总结
2015/04/25 职场文书
刑事上诉状范文
2015/05/22 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript