最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)郵箱地址自動(dòng)匹配功能代碼

 更新時(shí)間:2016年11月28日 09:07:51   作者:塞上江南果  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)E-mail郵箱地址自動(dòng)匹配功能代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

自動(dòng)匹配技術(shù):簡(jiǎn)單的來說就是“根據(jù)用戶輸入的信息來提示一些相似項(xiàng)供用戶選擇”。具有很廣泛的應(yīng)用,比如我們最常用的百度,當(dāng)輸入一些搜索內(nèi)容后會(huì)自動(dòng)匹配很多相關(guān)信息;再比如我們最常用的輸入法,都是使用這種技術(shù),當(dāng)然這些都比較難了。下面這個(gè)例子是比較簡(jiǎn)單的我們常用郵箱的匹配。代碼如下:

1.css代碼

  #match_email
  {
    margin-left:48px;
    overflow:auto; 
    display:none;
    width:200px;
    border:1px solid #aaa;
    background:#fff;
    max-height:100px;
    line-height:20px;
  }

  #match_email div
  {
    text-decoration:none;
    color:#000;
    width:200px;
  }

  #match_email div:hover
  {
    background:#aaa;  
  }

  input
  {
    height:20px;  
    width:200px;
  }

在css中將overflow設(shè)為auto以及將max-height設(shè)為100px表示,在該div高度超多100px就是自動(dòng)生成滾動(dòng)條。

2.html代碼

<div>
  郵箱:<input type="text" name="email" id="email" autocomplete="off" onkeyup="match_mail(this.value)"/>
  <div id="match_email"></div>

</div>

onkeyup時(shí)間表示只要手指離開按鈕就會(huì)觸發(fā)

3.js代碼

<script>
  //mailBoxs里存儲(chǔ)用來匹配的串
  var mailBoxs = "@163.com @126.com @129.com"
  mailBoxs += " @qq.com @vip.qq.com @foxmail.com @live.cn @hotmail.com @sina.com @sina.cn @vip.sina.com";
  var matchmail = document.getElementById("match_email");
  var email = document.getElementById("email");
  function match_mail(keyword)
  {
    matchmail.innerHTML = "";
    matchmail.style.display = "none";
    if (!keyword)
      return;
    if (!keyword.match(/^[\w\.\-]+@\w*[\.]?\w*/))  
      return;
    keyword = keyword.match(/@\w*[\.]?\w*/);
    var matchs = mailBoxs.match(new RegExp(keyword+"[^ ]* ","gm"));
    if (matchs)
    {
      matchs = matchs.join("").replace(/ $/,"").split(" ");
      matchmail.style.display = "block";
      for (var i = 0; i < matchs.length; i++)
      {
        matchmail.innerHTML += '<div>'+matchs[i]+'</div>'; 
      }  
    }
  }
  //點(diǎn)擊除了匹配框之外的任何地方,匹配框消失
  document.onclick = function(e)
  {
    var target = e.target;
    if (target.id != "matchmail")
      matchmail.style.display = "none";  
  }
  //將匹配框上鼠標(biāo)所點(diǎn)的字符放入輸入框
  matchmail.onclick = function(e)
  {
    var target = e.target;
    email.value = email.value.replace(/@.*/,target.innerHTML);
  }
</script>

在js中好幾處都用到了正則表達(dá)式:
(1)keyword = keyword.match(/@\w*[\.]?\w*/);只獲取@后面的內(nèi)容,包括@;
(2)var matchs = mailBoxs.match(new RegExp(keyword+"[^ ]* ","gm"));進(jìn)行匹配,把mailBoxs中和keyword匹配的存入matchs中,[^ ]* 指遇到空格不匹配,參數(shù)”gm”中'g'指進(jìn)行全局匹配,'m'指多行匹配;
(3)matchs = matchs.join("").replace(/ $/,"").split(" ");字符串的結(jié)尾用空格匹配,$表示字符串的結(jié)尾。

在兩個(gè)匿名函數(shù)中,e是在鼠標(biāo)點(diǎn)擊事件發(fā)生時(shí)系統(tǒng)自動(dòng)生成的·,e.target是獲得鼠標(biāo)所點(diǎn)的當(dāng)前對(duì)象。

最終效果如圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript自定義in_array()函數(shù)實(shí)現(xiàn)方法

    javascript自定義in_array()函數(shù)實(shí)現(xiàn)方法

    這篇文章主要介紹了javascript自定義in_array()函數(shù)實(shí)現(xiàn)方法,涉及javascript數(shù)組的遍歷與查找相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • javascript代碼混淆與加解密方式

    javascript代碼混淆與加解密方式

    這篇文章主要介紹了javascript代碼混淆與加解密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JS傳值出現(xiàn)中文參數(shù)亂碼的解決方法

    JS傳值出現(xiàn)中文參數(shù)亂碼的解決方法

    這篇文章主要介紹了JS傳值出現(xiàn)中文參數(shù)亂碼的解決方法,涉及javascript針對(duì)編碼的轉(zhuǎn)碼與解碼操作技巧,需要的朋友可以參考下
    2016-06-06
  • JavaScript如何將時(shí)間戳轉(zhuǎn)化為年月日時(shí)分秒格式

    JavaScript如何將時(shí)間戳轉(zhuǎn)化為年月日時(shí)分秒格式

    這篇文章主要給大家介紹了關(guān)于JavaScript如何將時(shí)間戳轉(zhuǎn)化為年月日時(shí)分秒格式的相關(guān)資料,在前端的日常工作當(dāng)中,時(shí)間戳的使用也是不少的,有時(shí)后端返回給我們的數(shù)據(jù)是一個(gè)時(shí)間戳,我們需要轉(zhuǎn)換成年月日,時(shí)分秒的形式展示在頁(yè)面當(dāng)中,需要的朋友可以參考下
    2023-11-11
  • JavaScript常用進(jìn)制轉(zhuǎn)換及位運(yùn)算實(shí)例解析

    JavaScript常用進(jìn)制轉(zhuǎn)換及位運(yùn)算實(shí)例解析

    這篇文章主要介紹了JavaScript常用進(jìn)制轉(zhuǎn)換及位運(yùn)算實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • JavaScript中eval()函數(shù)用法詳解

    JavaScript中eval()函數(shù)用法詳解

    eval() 函數(shù)計(jì)算 JavaScript 字符串,并把它作為腳本代碼來執(zhí)行,本文給大家
    2015-12-12
  • JavaScript中setTimeout的那些事兒

    JavaScript中setTimeout的那些事兒

    JavaScript中setTimeout的那些事兒到底有什么?setTimeout單線程、延遲時(shí)間等,感興趣的小伙伴們可以參考一下
    2016-11-11
  • javascript實(shí)現(xiàn)列表切換效果

    javascript實(shí)現(xiàn)列表切換效果

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)列表切換效果的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • three.js 入門案例詳解

    three.js 入門案例詳解

    本篇文章主要介紹了three.js 入門案例詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • JavaScript Table行定位效果

    JavaScript Table行定位效果

    近來有客戶要求用table顯示一大串?dāng)?shù)據(jù),由于滾動(dòng)后就看不到表頭,很不方便,所以想到這個(gè)效果。
    2009-05-05

最新評(píng)論

朝阳区| 临武县| 安多县| 贡觉县| 礼泉县| 响水县| 贞丰县| 景德镇市| 宿州市| 安顺市| 建平县| 儋州市| 无极县| 姜堰市| 韶关市| 溆浦县| 灵川县| 绥阳县| 贞丰县| 石屏县| 阳东县| 蒙山县| 南昌县| 东乌珠穆沁旗| 新源县| 彩票| 霍城县| 元谋县| 泸州市| 周宁县| 巴楚县| 平舆县| 应城市| 莫力| 衡阳县| 大同县| 凌云县| 修水县| 田阳县| 阜新| 四子王旗|