Fork me on GitHub

微博内容长度计算函数(C#)

微博内容长度的计算方法(不一定完全无误,仅提供一个思路):

       public static int GetWeiboContentLength(string weiboContent)
       {
           var max = 140;
           var surl = 11;
           var urlCount = 0;

           RegexOptions ops = RegexOptions.Compiled;
           Regex regex = new Regex(@"http://[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z_\$\.\+\!\*\(\)\/,:;@&=\?\~\#\%]*)", ops);
           var content = weiboContent;
           if (regex.IsMatch(weiboContent))
           {
               var matchs = regex.Matches(weiboContent);
               for (int i = 0; i < matchs.Count; i++)
               {
                   var count = matchs[i].Groups[0].Length;
                   urlCount += count <= max ? surl : (count - max + surl);
                   content = content.Replace(matchs[i].Value, "");
               }
           }
           var result = urlCount + content.Length;
           return result;
       }

posted @ 2012-07-09 23:08  张善友  阅读(1120)  评论(0编辑  收藏  举报