计算新浪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 相关文章推荐
关于javascript中this关键字(翻译+自我理解)
Oct 20 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
javascript结合ajax读取txt文件内容
Dec 05 Javascript
jQuery切换所有复选框选中状态的方法
Jul 02 Javascript
JavaScript实现文字跟随鼠标特效
Aug 06 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 Javascript
js中json处理总结之JSON.parse
Oct 14 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
简化vuex的状态管理方案的方法
Jun 02 Javascript
JS实现星星海特效
Dec 24 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中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
PHP chop()函数讲解
2019/02/11 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
jQuery $.each的用法说明
2010/03/22 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
Angular2库初探
2017/03/01 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
python中去空格函数的用法
2014/08/21 Python
简单易懂的python环境安装教程
2017/07/13 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
Python实现Linux监控的方法
2019/05/16 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
wxPython色环电阻计算器
2019/11/18 Python
Django用户身份验证完成示例代码
2020/04/03 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
为什么要做架构设计
2015/07/08 面试题
求职自荐信范文格式
2013/11/29 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
旅游节目策划方案
2014/05/26 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
离婚财产处理协议书
2014/09/30 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android