溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用JavaScript實現(xiàn)仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時檢查功能

發(fā)布時間:2021-04-13 13:42:10 來源:億速云 閱讀:165 作者:小新 欄目:web開發(fā)

這篇文章主要介紹怎么使用JavaScript實現(xiàn)仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時檢查功能,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、基本目標(biāo)

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

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

怎么使用JavaScript實現(xiàn)仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時檢查功能

二、基本布局

沒什么好說的。主要是提示文字給一個ID=test,字?jǐn)?shù)統(tǒng)計的地方因為時時變更,因此也要給出一個ID=wordLength,之后腳本處的inputTest函數(shù),又文本框的onkeyup事件觸發(fā),同時把自己此刻的值傳遞過去。同時注意到,字?jǐn)?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>輸入字?jǐn)?shù)檢查</title>
</head>
<body>
<p id="test"></p>
<span><input type="text" onkeyup="inputTest(this.value)" placeholder="請在此輸入" /></span><span id="wordLength" >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之間就是英文字符,應(yīng)該算一個長度
    if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128){
      mylen++;
    }else{
      //否則算兩個長度
      mylen+=2;
    }
  }
  return mylen;
}
//輸入當(dāng)字符數(shù)變更就觸發(fā)這個函數(shù)
function inputTest(value){
  //先調(diào)getStrLength用統(tǒng)計當(dāng)前文本框中所含文本的值,因為getStrLength統(tǒng)計出來的東西是英文字符長度,所以要除以2,強行轉(zhuǎn)換為整形
  //再補上/10替換wordLength中的文本,/應(yīng)該被轉(zhuǎn)義,否則在某些編譯器中無法通過,例如Dreamwaver
  document.getElementById("wordLength").innerHTML=parseInt(getStrLength(value)/2)+"\/10";
  //如果超過10個字,20個字符
  if(parseInt(getStrLength(value))>20){
    //那么把警告內(nèi)容顯示出來,并把其中的顏色設(shè)置為紅色,當(dāng)然,你在HTML那里設(shè)置也可以
    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>

以上是“怎么使用JavaScript實現(xiàn)仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時檢查功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI