计算新浪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生成的动态下雨背景效果实现方法
Feb 25 Javascript
jQuery监听文件上传实现进度条效果的方法
Oct 16 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
JavaScript无操作后屏保功能的实现方法
Jul 04 Javascript
JavaScript如何对图片进行黑白化
Apr 10 Javascript
Less 安装及基本用法
May 05 Javascript
微信小程序实现的picker多级联动功能示例
May 23 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
JS图片预加载三种实现方法解析
May 08 Javascript
ES5新增数组的实现方法
May 12 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 12 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基于文件存储实现缓存的方法
2015/07/20 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
浅谈python常用程序算法
2019/03/22 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python import 上级目录的导入
2020/11/03 Python
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
建筑学推荐信
2013/11/03 职场文书
销售行政专员职责
2014/01/03 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
花坛标语大全
2014/06/30 职场文书
中学生学习保证书
2015/02/26 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
通讯稿格式及范文
2015/07/22 职场文书
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技