计算新浪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 IE中的DOM ready应用技巧
Jul 23 Javascript
Jquery下判断Id是否存在的代码
Jan 06 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
web网页按比例显示图片实现原理及js代码
Aug 09 Javascript
css+js实现部分区域高亮可编辑遮罩层
Mar 04 Javascript
Javascript之BOM(window对象)详解
May 25 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
Jul 20 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
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读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Django后台获取前端post上传的文件方法
2018/05/28 Python
python快排算法详解
2019/03/04 Python
值得收藏的10道python 面试题
2019/04/15 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
岗位安全生产责任书
2014/07/28 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
win10清理dns缓存
2022/04/19 数码科技