计算新浪Weibo消息长度
此文为计算新浪Weibo的消息长度的方法. 就是 (发言请遵守社区公约,还可以输入119字).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步