计算新浪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模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
jQuery 获取URL的GET参数值的小例子
Apr 18 Javascript
关于编写性能高效的javascript事件的技术
Nov 28 Javascript
AngularJS模块学习之Anchor Scroll
Jan 19 Javascript
微信JS接口大全
Aug 25 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
Vue关于组件化开发知识点详解
May 13 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中的unset究竟会不会释放内存
2013/07/18 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python如何在循环引用中管理内存
2018/03/20 Python
python机器学习之贝叶斯分类
2018/03/26 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Django配置文件代码说明
2019/12/04 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
进修护士自我鉴定
2013/10/14 职场文书
售后求职信范文
2014/03/15 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
安全保证书格式
2015/02/28 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python