微博数日字数

Original 2019-04-14 16:22:58 268
abstract:<script>//获取长度函数//这里不能用封装好的方法,因为length方法,英文算一个字符,中文也算一个字符function getStrLength(str){  //传递一个字符串过来  var mylen=0;  //遍历这个字符串  for(var i=0;i<str.length;i+

<script>

//获取长度函数

//这里不能用封装好的方法,因为length方法,英文算一个字符,中文也算一个字符

function getStrLength(str){

  //传递一个字符串过来

  var mylen=0;

  //遍历这个字符串

  for(var i=0;i<str.length;i++){

    //如果字符串的第i个字符的Unicode码在0-128之间就是英文字符,应该算一个长度

    if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128){

      mylen++;

    }else{

      //否则算两个长度

      mylen+=2;

    }

  }

  return mylen;

}

//输入当字符数变更就触发这个函数

function inputTest(value){

  //先调getStrLength用统计当前文本框中所含文本的值,因为getStrLength统计出来的东西是英文字符长度,所以要除以2,强行转换为整形

  //再补上/10替换wordLength中的文本,/应该被转义,否则在某些编译器中无法通过,例如Dreamwaver

  document.getElementById("wordLength").innerHTML=parseInt(getStrLength(value)/2)+"\/10";

  //如果超过10个字,20个字符

  if(parseInt(getStrLength(value))>20){

    //那么把警告内容显示出来,并把其中的颜色设置为红色,当然,你在HTML那里设置也可以

    document.getElementById("test").style.display="block";

    document.getElementById("test").innerHTML="太长,请修改至10字之内";

    document.getElementById("test").style.color="#ff0000";

  }

  else{

    //否则隐藏警告内容

    document.getElementById("test").innerHTML="";

    document.getElementById("test").style.display="none";

  }

}

</script>


Correcting teacher:天蓬老师Correction time:2019-04-14 21:37:29
Teacher's summary:现在不少前端框架都内置了带有字数统计功能的文本域组件, 内部的原理与这个案例是类似的, 思路也相似...

Release Notes

Popular Entries