计算新浪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 相关文章推荐
js 颜色选择器(兼容firefox)
Mar 05 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
Jul 01 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 Javascript
vue watch自动检测数据变化实时渲染的方法
Jan 16 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 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重定向的三种方法分享
2012/02/22 PHP
色色整理的PHP面试题集锦
2012/03/08 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
Vue中引入样式文件的方法
2017/08/18 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
浅谈vue 单文件探索
2018/09/05 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python如何实现邮件功能
2020/05/27 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
授权委托书格式模板
2014/04/03 职场文书
买房协议书范本
2014/10/23 职场文书
初中毕业生自我评价
2015/03/02 职场文书
团干部培训班心得体会
2016/01/06 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python