新浪微博的字数判断
新浪微博的字数判断怎么做的呀,光知道规则,有高手能用js写出来吗?
需求:英文字母和半角的符号(除了空格)全算半个,中文和全角符号算一个。
以http://开头的网络地址不管多少都算10个,而且能存在多个网络地址,有几个就算几个10
------解决方案--------------------
还可以输入<span id="wordCheck"><span style='font-family:Georgia;font-size:24px;'>140</span></span>个字符
<br>
<textarea name="content" id="i_already" style="width:500px;height:200px;" onkeyup="javascript:checkWord(140,event)"></textarea>
<script type="text/javascript">
function checkWord(len,evt)
{
if(evt==null)
{
evt = window.event;
}
var src = evt.srcElement? evt.srcElement : evt.target;
var str = src.value.trim();//
myLen =0;
i=0;
var reg = /[http:\/\/]*?/;
for(;(i<str.length)&&(myLen<=len*2);i++)
{
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
{
myLen++;
}
else
{
myLen+=2;
}
if (str.match(reg))
{
myLen+=10;
}
}
var mydiv=document.getElementById("wordCheck");
if(myLen>len*2)
{
src.value=str.substring(0,i-1);
}
else
{
document.getElementById("wordCheck").innerHTML = "<span style='font-family:Georgia;font-size:24px;'>"+Math.floor((len*2-myLen)/2)+"</span>";
}
}
</script>
网络地址的好像有问题,我也不大会写