计算新浪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 相关文章推荐
JQuery对checkbox操作 (循环获取)
May 20 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
AngularJS数据源的多种获取方式汇总
Feb 02 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
详解angular2.x创建项目入门指令
Oct 11 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
小程序实现列表展开收起效果
Jul 29 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
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
python 读取DICOM头文件的实例
2018/05/07 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
三分钟英语演讲稿
2014/04/24 职场文书
法制宣传月活动总结
2014/04/29 职场文书
出售房屋委托书范本
2014/09/24 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书