国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現(xiàn)的仿新浪微博原生態(tài)輸入字數(shù)即時檢查功能【兼容IE6】

2019-11-19 15:18:10
字體:
供稿:網(wǎng)友

本文實例講述了JavaScript實現(xiàn)的仿新浪微博原生態(tài)輸入字數(shù)即時檢查功能。分享給大家供大家參考,具體如下:

邊在文本框輸入字符邊對輸入的字數(shù)進行檢查本來不難的,但是由于其中有些函數(shù)的使用方式大家容易混亂,很容易導致整個結(jié)果搞來搞去也沒有搞出來,也容易出Bugs,注意這里不能再使用length函數(shù)了,因為這個東西英文算一個字符,漢字也算一個字符,不符合數(shù)據(jù)傳遞的形式。也不能用OnChange事件了,這事件要光標離開為文本框才會觸發(fā),必須改成更加即時的OnKeyUp。

一、基本目標

如下圖,完成一個仿新浪微博的,不用任何插件,純Javascript無JQuery的帶字數(shù)統(tǒng)計的輸入框,如果超出字數(shù)則給出相應的提示。

英文算半個字,中文才算1個字。

二、基本布局

沒什么好說的。主要是提示文字給一個ID=test,字數(shù)統(tǒng)計的地方因為時時變更,因此也要給出一個ID=wordLength,之后腳本處的inputTest函數(shù),又文本框的onkeyup事件觸發(fā),同時把自己此刻的值傳遞過去。同時注意到,字數(shù)統(tǒng)計的地方之所以與新浪微博的部分相似,就是因為新浪微博那里用了Georgia字體,這字體顯示的數(shù)字比較獨特。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>輸入字數(shù)檢查</title></head><body><p id="test"></p><span><input type="text" onkeyup="inputTest(this.value)" placeholder="請在此輸入" /></span><span id="wordLength" style="font-family:Georgia;">0/10</span></body></html>

三、核心腳本

<script>//獲取長度函數(shù)//這里不能用封裝好的方法,因為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;}//輸入當字符數(shù)變更就觸發(fā)這個函數(shù)function inputTest(value){  //先調(diào)getStrLength用統(tǒng)計當前文本框中所含文本的值,因為getStrLength統(tǒng)計出來的東西是英文字符長度,所以要除以2,強行轉(zhuǎn)換為整形  //再補上/10替換wordLength中的文本,/應該被轉(zhuǎn)義,否則在某些編譯器中無法通過,例如Dreamwaver  document.getElementById("wordLength").innerHTML=parseInt(getStrLength(value)/2)+"http://10";  //如果超過10個字,20個字符  if(parseInt(getStrLength(value))>20){    //那么把警告內(nèi)容顯示出來,并把其中的顏色設置為紅色,當然,你在HTML那里設置也可以    document.getElementById("test").style.display="block";    document.getElementById("test").innerHTML="太長,請修改至10字之內(nèi)";    document.getElementById("test").style.color="#ff0000";  }  else{    //否則隱藏警告內(nèi)容    document.getElementById("test").innerHTML="";    document.getElementById("test").style.display="none";  }}</script>

PS:這里再為大家推薦2款功能相似的在線工具:

在線字數(shù)統(tǒng)計工具:
http://tools.VeVB.COm/code/zishutongji

在線字符統(tǒng)計與編輯工具:
http://tools.VeVB.COm/code/char_tongji

更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學運算用法總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構與算法技巧總結(jié)》及《JavaScript遍歷算法與技巧總結(jié)

希望本文所述對大家JavaScript程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 保定市| 昭觉县| 分宜县| 岳阳市| 独山县| 淅川县| 林芝县| 阜城县| 蚌埠市| 固镇县| 青河县| 子洲县| 江源县| 阜平县| 璧山县| 揭西县| 南漳县| 宜章县| 四子王旗| 托克托县| 黔南| 三门县| 英德市| 深水埗区| 额尔古纳市| 新余市| 古蔺县| 宁南县| 佛冈县| 井冈山市| 宾阳县| 博罗县| 宝兴县| 高唐县| 台安县| 天门市| 姚安县| 蒲城县| 册亨县| 庆阳市| 永济市|