计算新浪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 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
jQuery的position()方法详解
Jul 19 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
Vue-resource拦截器判断token失效跳转的实例
Oct 27 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
vue 实现单选框设置默认选中值
Nov 07 Javascript
Node.js API详解之 Error模块用法实例分析
May 14 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
PHP数据过滤的方法
2013/10/30 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
php查询及多条件查询
2017/02/26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
星球大战与Python之间的那些事
2016/01/07 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
python标准库OS模块详解
2020/03/10 Python
python中关于数据类型的学习笔记
2020/07/19 Python
java字符串格式化输出实例讲解
2021/01/06 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
房地产销售计划书
2014/01/10 职场文书
结婚保证书
2015/01/16 职场文书
给领导敬酒词
2015/08/12 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书