inputpattern——正則表達式的奇妙用途

一、正則表達式簡介

在計算機科學中,正則表達式是描述字元模式的一種語言。原本用於unix類操作系統的文本編輯器vi,現在幾乎所有的編程語言都支持正則表達式。它可以應用於文本匹配、搜索、替換、數據分離等。

形式上,「正則表達式」就是一個(或多個)字元序列,其表示一個字元串集合。

在正則表達式中,我們常用到的元字元有:^、$、\、.、[ ]、( )、{ }、|。

^匹配字元串的開始;$匹配字元串的結束;\是轉義符;.匹配除了換行符以外的任意字元;[ ]匹配括弧內的任意字元;( )捕獲匹配的內容;{ }匹配指定次數;|匹配兩項中的任意一項。

二、inputpattern的基礎用法

在HTML表單中,我們常常需要驗證用戶輸入的數據格式是否正確。比如,驗證用戶輸入的電子郵件地址、密碼、手機號碼是否符合規則。為此,HTML5中新增了inputpattern屬性,可以通過正則表達式驗證用戶輸入的數據是否合法。

inputpattern的基礎用法很簡單,只需要在input標籤中加入pattern屬性,並給定正則表達式即可。例如,下面的代碼實現了驗證用戶輸入的手機號碼是否為11位數字:

<input type="tel" pattern="[0-9]{11}" required>

上述代碼中,「[ ]」表示匹配括弧內的任意字元,「0-9」表示匹配數字,「{11}」表示匹配11次。因此,該正則表達式表示匹配11位數字。

三、inputpattern常用的正則表達式

除了驗證手機號碼之外,inputpattern還可以用來驗證其他常見的數據格式。比如:

1.驗證電子郵件地址

電子郵件地址的格式很多,一般包含用戶名、域名和頂級域名。下面是一個簡單的驗證用戶輸入的電子郵件地址是否合法的正則表達式:

<input type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" required>

上述代碼中,「+」表示匹配一次或多次,「\.」表示匹配句點字面量,「{2,}」表示匹配2次或多次。因此,該正則表達式表示匹配符合電子郵件地址格式的字元串。

2.驗證密碼

密碼是用戶賬號的重要組成部分,確保其安全性是很有必要的。下面是一個簡單的密碼格式驗證的正則表達式:

<input type="password" pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\S]{8,}" required>

上述代碼中,「(?=.*[a-z])」表示至少包含一個小寫字母,「(?=.*[A-Z])」表示至少包含一個大寫字母,「(?=.*\d)」表示至少包含一個數字,「[\S]{8,}」表示匹配8個及以上的非空格字元。因此,該正則表達式表示匹配符合密碼格式的字元串。

3.驗證網址

網址的格式也很多,不同的網址可能包含不同的協議、域名和路徑。下面是一個簡單的驗證用戶輸入的網址是否合法的正則表達式:

<input type="url" pattern="((https?|ftp|file)?://)?([\da-z.-]+)\.([a-z.]{2,6})([/\w.-]*)*/?" required>

上述代碼中,「((https?|ftp|file)?://)?」表示匹配協議,「([\da-z.-]+)」和「([a-z.]{2,6})」分別表示匹配域名和頂級域名,「[/\w.-]*」表示匹配路徑。因此,該正則表達式表示匹配符合網址格式的字元串。

四、inputpattern的高級用法

除了基礎的數據格式驗證之外,inputpattern還可以實現其他高級的用途。比如,可以實現根據前一項的值動態驗證下一項。

假設有兩個表單項:密碼和確認密碼。當用戶在第一個表單項(密碼)中輸入值時,第二個表單項(確認密碼)應該動態驗證該值是否與第一個表單項(密碼)一致。可以通過JavaScript動態生成驗證規則,並將其賦給inputpattern屬性實現動態驗證。

<form>
  <input id="password" type="password" placeholder="密碼">
  <input id="confirm-password" type="password" placeholder="確認密碼">
</form>

<script>
  const password = document.querySelector('#password');
  const confirmPassword = document.querySelector('#confirm-password');
  
  password.addEventListener('input', () => {
    const passwordValue = password.value;
    confirmPassword.pattern = `^${passwordValue}$`;
  });
</script>

上述代碼中,當用戶在密碼錶單項中輸入值時,會動態生成一個驗證規則,並將其賦給確認密碼錶單項的inputpattern屬性。該規則用於驗證確認密碼是否與密碼一致。

五、小結

inputpattern是一個非常有用的工具,可以幫助我們快速、簡便地驗證用戶輸入的數據格式是否合法。除了基礎的數據格式驗證之外,inputpattern還可以實現其他高級的用途,例如動態驗證、根據用戶不同的輸入進行不同的驗證等等。

希望本文對你有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/294181.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:16
下一篇 2024-12-26 13:16

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字元串中搜索匹配正則表達式的位置,但它們有著不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • 異或什麼意思及其用途

    異或操作是一種比較常見的位運算操作,也稱為「異或運算」,這個運算符用符號「^」表示。它是指對兩個相應位進行邏輯異或,並返回結果。 我們來看下異或的運算規則: 0 ^ 0 = 0 0…

    編程 2025-04-28
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字元串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字元串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • 詳解 IP 正則表達式

    一、IP 地址基礎知識 在講解 IP 的正則表達式前,我們先來了解一下 IP 地址的基礎知識。IP 是 Internet Protocol 的縮寫,用於標識網路中的設備。IP 地址…

    編程 2025-04-24
  • 深入理解grep正則表達式

    一、grep的基本用法 grep命令是Linux系統中最常用的命令之一,它可以在文件中查找特定的文本模式,非常方便。grep命令的基本用法: grep ‘pattern’ file…

    編程 2025-04-24
  • sed正則表達式深度解析

    一、sed正則表達式 sed(stream editor)是一個基於行的文本編輯器,它可以執行基本的文本轉換功能,其中包含正則表達式的匹配和替換功能。在sed中,正則表達式被廣泛應…

    編程 2025-04-23
  • 身份證號碼正則表達式詳解

    一、身份證號碼的基礎結構 身份證號碼是由18個字元組成的,分為前17位和最後一位校驗位。而校驗位的計算方法是經過公式計算得來的,可以確定身份證號碼是否錯誤。其中,前6位是地區碼,接…

    編程 2025-04-23
  • 正整數的正則表達式

    在編程開發過程中,我們經常需要進行一些數據驗證操作,以確保用戶輸入的數據符合一定的格式和規範。而正則表達式就是一個非常強大的工具,可以幫助我們快速、準確地檢查和過濾數據。本文將從多…

    編程 2025-04-23
  • 數字12312321的奇妙之處

    一、數字的結構 12312321是一個八位數。 num = 12312321 digit1 = num // 10000000 # 取得第一位數字 digit2 = (num //…

    編程 2025-04-23
  • 正則表達式不包含某個字元串

    一、正則表達式基礎 正則表達式是一種用來匹配字元串的工具。它通過定義一個規則來匹配符合該規則的特定文本,這樣就可以對想要匹配的字元串進行過濾或者替換操作。正則表達式中包括了一些特殊…

    編程 2025-04-12

發表回復

登錄後才能評論