计算新浪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 相关文章推荐
CheckBox 如何实现全选?
Jun 23 Javascript
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
js no-repeat写法 背景不重复
Mar 18 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
node.js中express中间件body-parser的介绍与用法详解
May 23 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 Javascript
微信小程序实现上传图片裁剪图片过程解析
Aug 22 Javascript
vue2实现provide inject传递响应式
May 21 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 $_FILES中error返回值详解
2014/01/30 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python读取指定日期邮件的实例
2019/02/01 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Apache部署Django项目图文详解
2019/07/30 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
详解HTML5中的标签
2015/06/19 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
书法比赛获奖感言
2014/02/10 职场文书
党员领导干部承诺书
2014/05/28 职场文书
美食节目策划方案
2014/05/31 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
公司租房协议书范本
2014/10/08 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
清明扫墓感想
2015/08/11 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python