计算新浪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的逻辑运算符 ||
May 31 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 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 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
Vue精简版风格概述
2018/01/30 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
从vue源码看props的用法
2019/01/09 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python进行数据提取的方法总结
2016/08/22 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
python实现统计代码行数的小工具
2019/09/19 Python
Pycharm中如何关掉python console
2020/10/27 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
应届生污水处理求职信
2013/11/06 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
市三好学生主要事迹
2014/01/28 职场文书
北京大学自荐信范文
2014/01/28 职场文书
食品安全工作实施方案
2014/03/26 职场文书
我的长征观后感
2015/06/09 职场文书