计算新浪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通过正则表达式实现表单验证电话号码
Mar 07 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
实例解析Array和String方法
Dec 14 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
详解Vue中watch的高级用法
May 02 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
Oct 23 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
简单了解JavaScript sort方法
Nov 25 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
May 14 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
第六节--访问属性和方法
2006/11/16 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
一个实用的php验证码类
2017/07/06 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
React Router基础使用
2017/01/17 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python 生成器协程运算实例
2017/09/04 Python
Python AES加密实例解析
2018/01/18 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Python最小二乘法矩阵
2019/01/02 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
酒吧员工的岗位职责
2013/11/26 职场文书
大学生工作自荐书
2014/06/16 职场文书
环保志愿者活动方案
2014/08/14 职场文书
初中成绩单评语
2014/12/29 职场文书
杨善洲电影观后感
2015/06/04 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers