HTML(六)——表單驗證、正則表達式、事件

来源:http://www.cnblogs.com/H2921306656/archive/2016/07/31/5723973.html
-Advertisement-
Play Games

1、表單驗證<form></form> (1).非空驗證(去空格) (2).對比驗證(跟一個值對比) (3).範圍驗證(根據一個範圍進行判斷) (4).固定格式驗證:電話號碼,身份證號,郵箱,信用卡號等的驗證;需要用到正則表達式來進行驗證。 (5).其它驗證 2、正則表達式 用符號來描述書寫規則:/ ...


1、表單驗證<form></form>

(1).非空驗證(去空格)

(2).對比驗證(跟一個值對比)

(3).範圍驗證(根據一個範圍進行判斷)

(4).固定格式驗證:電話號碼,身份證號,郵箱,信用卡號等的驗證;需要用到正則表達式來進行驗證。

(5).其它驗證

2、正則表達式

用符號來描述書寫規則:/ 中間寫正則表達式 /

^ :匹配開頭,$:匹配結尾 ; /^ve/以ve開頭的 /ve$/以ve結尾

\d:一個任意的數字

\w:一個任意的數字或字母

\s:任意字元串

{n}:把左邊的表達式重覆n遍

{m,n}:把左邊的表達式重覆至少m遍,至多n遍
    {m, }:把左邊的表達式重覆至少m遍,,至多不限

+:左邊的表達式,至少出現一次,至多不限,相當於{1,}

*:左邊的表達式,至少出現0次,至多不限,相當於{0,}

?:左邊的表達式,至少出現0次,至多出現1次,相當於{0,1}

[a,b,c]:只能取方括弧中內容之一

[a-z]或[1-9]:在範圍中取其一

|:代表或者; ():優先順序; \:轉義--“\( \)”這個才是要出現的小括弧,需要轉義

3、事件

事件有三要素:事件源、事件數據、事件處理程式

可以加return false;是阻止預設操作

onclick: 滑鼠單擊觸發

ondblclick: 雙擊觸發

onmouseover: 滑鼠移動上面觸發

onmouseout: 滑鼠離開時觸發

onmousemove: 滑鼠在上面移動時觸發

onchange: 只要內容改變觸發

onblur: 失去焦點時觸發

onfocus: 獲得焦點時觸發

onkeydown: 按鍵按下的時候觸發

onkeyup:按鍵抬起來的時候觸發

onkeypress:事件在用戶按下並放開任何字母數字鍵時發生。但是系統按鈕(例如:箭頭鍵、功能鍵)無法得到識別。

例子:根據正則表達式驗證郵箱

   function checkemail()
   {
    var v4 = trim(u4.value);
    var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    if(v4.match(reg) != null)
    {
        imgs4.setAttribute("src","imges/1.png");
        return true;
    }
    else
    {
        imgs4.setAttribute("src","imges/2.png");
        return false;
    }
 }

正則表達式補充:

建立正則表達式的方法:

                       

var patten= new RegExp(/^[0-9]{17}[0-9|X]$/);/*
RegExp()括弧裡面的式子需要自己定義:
1、[]裡面只有一個元素
2、()裡面可以寫一個單詞或者式子
3、{}裡面表示數量 4、^:以某個元素開頭,寫在元素前面 5、$:以某個元素結束,寫在元素後面*/
 例:

1、正則表達式驗證身份證:

 身份證:<input type="text" id="1"  />  /*javascript部分*/
  var a= document.getElementById("1").value;
  var patten= new RegExp(/^[0-9]{17}[0-9|X]$/);
  if(patten.test(a))
  {
      alert("輸入正確");
  }
  else
  {
      alert("輸入錯誤");
  }
 2、正則表達式驗證郵箱:  郵箱:<input type="text" id="2" /><input type="button" value="提交" onclick="mail()" />  
function mail()
{
    var patten2= new RegExp(/^[0-9|A-z|_]{1,17}[@][0-9|A-z]{1,3}.(com)$/)
    var mail = document.getElementById("2").value;
    if(patten2.test(mail))
      {
          alert("輸入正確");
      }
    else
      {
          alert("輸入錯誤");
      }
}
 

 常用正則表達式:

    匹配國內電話號碼:d{3}-d{8}|d{4}-d{7} 
    評註:匹配形式如 0511-4405222 或 021-87888822 
   

    匹配騰訊QQ號:[1-9][0-9]{4,} 
    評註:騰訊QQ號從10000開始 
   

    匹配中國郵政編碼:[1-9]d{5}(?!d) 
    評註:中國郵政編碼為6位數字 
   

    匹配身份證:d{15}|d{18} 
    評註:中國的身份證為15位或18位 
   

    匹配ip地址:d+.d+.d+.d+ 
    評註:提取ip地址時有用 
   

    匹配特定數字: 
    ^[1-9]d*$      //匹配正整數 
    ^-[1-9]d*$    //匹配負整數 
    ^-?[1-9]d*$     //匹配整數 
    ^[1-9]d*|0$   //匹配非負整數(正整數 + 0) 
    ^-[1-9]d*|0$     //匹配非正整數(負整數 + 0) 
    ^[1-9]d*.d*|0.d*[1-9]d*$     //匹配正浮點數 
    ^-([1-9]d*.d*|0.d*[1-9]d*)$   //匹配負浮點數 
    ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$   //匹配浮點數 
    ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$     //匹配非負浮點數(正浮點數 + 0) 
    ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$    //匹配非正浮點數(負浮點數 + 0) 
    評註:處理大量數據時有用,具體應用時註意修正 
   

    匹配特定字元串: 
    ^[A-Za-z]+$    //匹配由26個英文字母組成的字元串 
    ^[A-Z]+$    //匹配由26個英文字母的大寫組成的字元串 
    ^[a-z]+$    //匹配由26個英文字母的小寫組成的字元串 
    ^[A-Za-z0-9]+$    //匹配由數字和26個英文字母組成的字元串 
    ^w+$    //匹配由數字、26個英文字母或者下劃線組成的字元串 
   

    在使用RegularExpressionValidator驗證控制項時的驗證功能及其驗證表達式介紹如下: 
    只能輸入數字:“^[0-9]*$” 
    只能輸入n位的數字:“^d{n}$” 
    只能輸入至少n位數字:“^d{n,}$” 
    只能輸入m-n位的數字:“^d{m,n}$” 
    只能輸入零和非零開頭的數字:“^(0|[1-9][0-9]*)$” 
    只能輸入有兩位小數的正實數:“^[0-9]+(.[0-9]{2})?$” 
    只能輸入有1-3位小數的正實數:“^[0-9]+(.[0-9]{1,3})?$” 
    只能輸入非零的正整數:“^+?[1-9][0-9]*$” 
    只能輸入非零的負整數:“^-[1-9][0-9]*$” 
    只能輸入長度為3的字元:“^.{3}$” 
    只能輸入由26個英文字母組成的字元串:“^[A-Za-z]+$” 
    只能輸入由26個大寫英文字母組成的字元串:“^[A-Z]+$” 
    只能輸入由26個小寫英文字母組成的字元串:“^[a-z]+$” 
    只能輸入由數字和26個英文字母組成的字元串:“^[A-Za-z0-9]+$” 
    只能輸入由數字、26個英文字母或者下劃線組成的字元串:“^w+$” 
    驗證用戶密碼:“^[a-zA-Z]w{5,17}$”正確格式為:以字母開頭,長度在6-18之間, 
    只能包含字元、數字和下劃線。 
    驗證是否含有^%&'',;=?$"等字元:“[^%&'',;=?$x22]+” 
    只能輸入漢字:“^[u4e00-u9fa5],{0,}$” 
    驗證Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 
    驗證InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$” 
    驗證電話號碼:“^((d{3,4})|d{3,4}-)?d{7,8}$” 
    正確格式為:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”, 
    “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。 
    驗證身份證號(15位或18位數字):“^d{15}|d{}18$” 
    驗證一年的12個月:“^(0?[1-9]|1[0-2])$”正確格式為:“01”-“09”和“1”“12” 
    驗證一個月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 
    正確格式為:“01”“09”和“1”“31”。 
    匹配中文字元的正則表達式: [u4e00-u9fa5] 
    匹配雙位元組字元(包括漢字在內):[^x00-xff] 
    匹配空行的正則表達式:n[s| ]*r 
    匹配HTML標記的正則表達式:/<(.*)>.*|<(.*) />/ 
    匹配首尾空格的正則表達式:(^s*)|(s*$) 
    匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
    匹配網址URL的正則表達式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SVG描邊動畫原理其實很簡單,主要利用以下兩個屬性 stroke-dasharray 製作虛線,使得黑白相間, stroke-dashoffset 使得虛線向開頭偏移,這裡的1500不精確,是我隨便取的,下文介紹通過JS獲取長度。 動畫就是減少虛線偏移,那麼實線就會慢慢漏出來了 JS獲取長度 var ...
  • SVG是什麼 SVG是什麼 SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG 用來定義WEB上使用的矢量圖 SVG 使用 XML 格式定義圖形 SVG 圖像在縮放時其圖形質量不會有所損失 SVG 是W3C推薦的 SVG 與諸如 DOM和 XSL 之類的W3C標準 ...
  • ES6新特性之 函數參數的預設值寫法 和 箭頭函數。 1、函數參數的預設值 ES5中不能直接為函數的參數指定預設值,只能通過以下的變通方式: 從上面的代碼可以看出存在一個問題,當傳入的參數為0或者false時,會直接取到後面的值,而不是傳入的這個參數值。 那怎麼解決呢?對於上圖的代碼,可以通過判斷是 ...
  • 一、前言 昨天我們瞭解了Js的很重要的一個概念叫做函數,函數就是對於冗餘和垃圾代碼的一種封裝機制。簡單的講就是為了能讓程式更好更快的執行我們將一些重覆性的代碼提取,封裝成一個有名字的小盒子,等到我們需要的時候我們可以直接將盒子拿出來使用。 二、引入 無論是在前端還是後臺語言中函數都是一個個成功程式的 ...
  • 在javascript中,this指代的對象時常會變化,這會造成程式,混亂,一般做法就是先將this保存在一個變數中,就不怕她變了,我們先看一個小例子 JQuery提供了proxy方法,它可以綁定代理一個對象,this變了,我不怕不怕啦,that當this,我不怕不怕不怕啦,proxy有了你出現,對 ...
  • 本人是一名.net程式員..... 你一個.net coder 看什麼jQuery 源碼啊? 原因嗎,很簡單。技多不壓身嗎(麻蛋,前端工作好高...羡慕)。 我一直都很喜歡JavaScript,廢話不多說了,直接切入正題。 最近看了好幾篇jQuery 源碼的文章,對於jQuery的無new構建 很是 ...
  • JS對象的比較 由於JS是解釋執行的語言,那麼代碼中出現函數與對象如果重覆執行,會創建多個副本 在開發中會引入各種框架和庫,自定義的成員越多,出現命名衝突的幾率越大 在開發中會有多個構造函數,,每一個構造函數有很多方法,就會變得不容易維護 原型相關的概念 關於面向對象的概念 類 class 在js中 ...
  • HTML簡介 HyperText Markup Language:超文本標記語言 HyperText:超文本(文本 + 圖片 + 視頻 + 音頻 + 鏈接) Markup Language:標記語言 網站的三大元素 圖片,超鏈接,文字 HTML基本結構 標準網頁的HTML標簽 1.HTML文檔聲明: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...