Web 前端常用正則校驗規則

来源:https://www.cnblogs.com/yuzhihui/archive/2023/05/27/17436413.html
-Advertisement-
Play Games

# Web 前端常用正則校驗規則 作為 Web 前端開發,常用的正則校驗規則有很多。下麵是一些常見的示例: ## 1. 校驗手機號碼 手機號碼的正則表達式可以根據不同國家和地區的手機號碼格式進行調整。以下是中國大陸的手機號碼正則表達式: ```javascript const regex = /^1 ...


Web 前端常用正則校驗規則

作為 Web 前端開發,常用的正則校驗規則有很多。下麵是一些常見的示例:

1. 校驗手機號碼

手機號碼的正則表達式可以根據不同國家和地區的手機號碼格式進行調整。以下是中國大陸的手機號碼正則表達式:

const regex = /^1[3456789]\d{9}$/;

在這個示例中,正則表達式 ^1[3456789]\d{9}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • 1 表示必須以數字 1 開頭。
  • [3456789] 表示第二位必須是 3、4、5、6、7、8 或 9 中的一個。
  • \d{9} 表示後面必須跟著 9 個數字。
  • $ 表示匹配字元串的結尾。

2. 校驗郵箱地址

郵箱地址的正則表達式可以根據不同的郵箱服務提供商進行調整。以下是一個通用的郵箱地址正則表達式:

const regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

在這個示例中,正則表達式 ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 表示:

  • ^ 表示匹配字元串的開頭。
  • \w+ 表示必須以一個或多個字母、數字或下劃線開頭。
  • ([-+.]\w+)* 表示可以包含一個或多個連字元、加號或點號,後面跟著一個或多個字母、數字或下劃線。
  • @ 表示必須包含一個 @ 符號。
  • \w+ 表示必須包含一個或多個字母、數字或下劃線。
  • ([-.]\w+)* 表示可以包含一個或多個連字元或點號,後面跟著一個或多個字母、數字或下劃線。
  • \. 表示必須包含一個點號。
  • \w+ 表示必須包含一個或多個字母、數字或下劃線。

3. 校驗身份證號碼

身份證號碼的正則表達式可以根據不同的國家和地區進行調整。以下是中國大陸身份證號碼的正則表達式:

const regex =
  /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/;

// 身份證號碼為15位或18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X
// const regex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

在這個示例中,正則表達式 ^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [1-9] 表示第一位必須是 1 到 9 中的一個。
  • \d{5} 表示後面必須跟著 5 個數字。
  • (19|20) 表示第七到第十位必須是 19 或 20。
  • \d{2} 表示第十一到第十二位必須是一個兩位數字。
  • (0[1-9]|1[012]) 表示第十三到第十四位必須是 01 到 12 中的一個。
  • (0[1-9]|[12]\d|3[01]) 表示第十五到第十六位必須是 01 到 31 中的一個。
  • \d{3} 表示第十七到第十九位必須是三個數字。
  • [0-9Xx] 表示最後一位可以是數字或大寫字母 X。

4. 校驗密碼強度

校驗密碼強度通常需要考慮密碼的長度、字元類型和組合方式等因素。以下是一個簡單的密碼強度正則表達式,要求密碼長度為 6 到 20 個字元,且必須包含字母和數字:

const regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{6,20})$/;

在這個示例中,正則表達式 ^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{6,20})$ 表示:

  • ^ 表示匹配字元串的開頭。
  • (?=.*[0-9]) 表示必須包含至少一個數字。
  • (?=.*[a-zA-Z]) 表示必須包含至少一個字母。
  • ([a-zA-Z0-9]{6,20}) 表示密碼長度必須為 6 到 20 個字元,且只能包含字母和數字。
  • $ 表示匹配字元串的結尾。

5. 校驗 URL 地址

校驗 URL 地址通常需要考慮 URL 的協議、主機名、埠和路徑等部分。以下是一個簡單的 URL 校驗正則表達式:

const regex = /^(http|https):\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/\S*)?$/;

// const regex =
//   /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;

在這個示例中,正則表達式 ^(http|https):\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/\S*)?$ 表示:

  • ^ 表示匹配字元串的開頭。
  • (http|https) 表示必須以 http 或 https 開頭。
  • :\/\/ 表示匹配冒號和雙斜杠。
  • ([\w-]+\.)+[\w-]+ 表示匹配主機名,必須包含至少一個連字元或字母,後面跟著一個或多個字母、數字或連字元。
  • (:\d+)? 表示匹配可選的埠號,必須以冒號和一個或多個數字結尾。
  • (\/\S*)? 表示匹配可選的路徑,必須以斜杠開頭,後面可以跟任意非空白字元。
  • $ 表示匹配字元串的結尾。

當然,還有一些其他常用的正則校驗規則,例如:

6. 校驗郵政編碼

郵政編碼的正則表達式可以根據不同的國家和地區進行調整。以下是中國大陸郵政編碼的正則表達式:

const regex = /^[1-9]\d{5}$/;

在這個示例中,正則表達式 ^[1-9]\d{5}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [1-9] 表示第一位必須是 1 到 9 中的一個。
  • \d{5} 表示後面必須跟著 5 個數字。
  • $ 表示匹配字元串的結尾。

7. 校驗 IP 地址

IP 地址的正則表達式可以根據不同的 IP 地址格式進行調整。以下是一個簡單的 IPv4 地址校驗正則表達式:

const regex =
  /^([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])$/;

在這個示例中,正則表達式 ^([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])$ 表示:

  • ^ 表示匹配字元串的開頭。
  • ([01]?\d{1,2}|2[0-4]\d|25[0-5]) 表示匹配 0 到 255 之間的數字。
  • \. 表示匹配點號。
  • $ 表示匹配字元串的結尾。

8. 校驗護照號碼

以下是中國大陸護照號碼的正則表達式:

const regex = /^[EeGg]\d{8}$/;

在這個示例中,正則表達式 ^[EeGg]\d{8}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [EeGg] 表示第一位必須是大寫字母 E 或 G,或小寫字母 e 或 g 中的一個。
  • \d{8} 表示後面必須跟著 8 個數字。
  • $ 表示匹配字元串的結尾。

9. 校驗港澳通行證號碼

以下是中國大陸港澳通行證號碼的正則表達式:

const regex = /^[HMhm]\d{8}$/;

在這個示例中,正則表達式 ^[HMhm]\d{8}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [HMhm] 表示第一位必須是大寫字母 H 或 M,或小寫字母 h 或 m 中的一個。
  • \d{8} 表示後面必須跟著 8 個數字。
  • $ 表示匹配字元串的結尾。

10. 校驗中文名

中文名的正則表達式可以根據具體情況進行調整。以下是一個簡單的中文名校驗正則表達式,要求中文名只包含漢字:

const regex = /^[\u4e00-\u9fa5]{2,4}$/;

在這個示例中,正則表達式 ^[\u4e00-\u9fa5]{2,4}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [\u4e00-\u9fa5] 表示匹配任意一個漢字。
  • {2,4} 表示匹配 2 到 4 個漢字。
  • $ 表示匹配字元串的結尾。

另外,如果要校驗中文名中是否包含漢字以外的字元,可以使用類似於以下的正則表達式:

const regex = /^[\u4e00-\u9fa5·]{2,20}$/;

在這個示例中,正則表達式 ^[\u4e00-\u9fa5·]{2,20}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [\u4e00-\u9fa5·] 表示匹配任意一個漢字或中文間隔符 “·”。
  • {2,20} 表示匹配 2 到 20 個漢字或中文間隔符 “·”。
  • $ 表示匹配字元串的結尾。

這個示例中使用了 “·” 作為中文名的間隔符,這是一種常見的方式,但並不是唯一正確的方式。在實際應用中,應根據具體情況選擇合適的間隔符,並根據需要進行調整和優化。

11. 校驗外國人居留證號碼

以下是一個簡單的外國人居留證校驗正則表達式,要求居留證號碼只包含英文字母和數字:

const regex = /^[A-Za-z0-9]{8,20}$/;

在這個示例中,正則表達式 ^[A-Za-z0-9]{8,20}$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [A-Za-z0-9] 表示匹配任意一個英文字母或數字。
  • {8,20} 表示匹配 8 到 20 個英文字母或數字。
  • $ 表示匹配字元串的結尾。

12. 校驗只允許字母和數字

只允許字母和數字的正則表達式如下:

const regex = /^[A-Za-z0-9]+$/;

在這個示例中,正則表達式 ^[A-Za-z0-9]+$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [A-Za-z0-9] 表示匹配任意一個英文字母或數字。
  • + 表示匹配前面的字元至少一次或多次。
  • $ 表示匹配字元串的結尾。

這個正則表達式可以用來校驗只包含字母和數字的字元串,例如用戶名、密碼等。需要註意的是,這個正則表達式不包括空格和其他特殊字元。如果需要校驗包括空格和其他特殊字元的字元串,可以根據具體情況進行調整和優化。

13. 校驗首位不為零的數字

首位不為零的數字的正則表達式如下:

const regex = /^[1-9]\d*$/;

在這個示例中,正則表達式 ^[1-9]\d*$ 表示:

  • ^ 表示匹配字元串的開頭。
  • [1-9] 表示第一位必須是 1 到 9 中的一個。
  • \d* 表示後面可以跟著任意個數字(包括零個數字)。
  • $ 表示匹配字元串的結尾。

這個正則表達式可以用來校驗整數,要求整數的首位必須是 1 到 9 中的一個,可以包含多個數字。此外,這個正則表達式不包括小數和負數,如果需要校驗包括小數和負數的數字,可以根據具體情況進行調整和優化。

需要註意的是,以上示例只是常用的正則校驗規則之一,實際應用中可能需要根據具體的業務需求進行調整和優化。同時,正則表達式的編寫也需要考慮到性能和可讀性等方面的因素。

作者:飛仔FeiZai

出處:https://www.cnblogs.com/yuzhihui/p/17436413.html

聲明:歡迎任何形式的轉載,但請務必註明出處!!!


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

-Advertisement-
Play Games
更多相關文章
  • 1. 什麼是MAF和MEF? MEF和MEF微軟官方介紹:https://learn.microsoft.com/zh-cn/dotnet/framework/mef/ MEF是輕量化的插件框架,MAF是複雜的插件框架。 因為MAF有進程隔離和程式域隔離可選。我需要插件進程隔離同時快速傳遞數據,最後 ...
  • 有個.NET面試官反饋面試了一個小白,問他用過哪些.NET庫,結果只回答上了幾個。作為一個.NET開發者,瞭解一些常用的.NET庫是非常重要的。本文將介紹.NET開發人員應該瞭解的10個常用.NET庫,這些庫可以幫助開發人員提高開發效率、簡化開發流程,開發出優秀的.NET應用程式。 **1、Auto ...
  • 《機器人SLAM導航核心技術與實戰》第1季:第5章_機器人主機 視頻講解 【第1季】5.第5章_機器人主機-視頻講解 【第1季】5.1.第5章_機器人主機_X86與ARM主機對比-視頻講解 【第1季】5.2.第5章_機器人主機_ARM主機樹莓派3B+-視頻講解 【第1季】5.3.第5章_機器人主機_ ...
  • # shell 常用命令3 ## 1 sed 用來自動編輯文件,可以用來實現替換配置文件的配置 ```shell 語法: sed [-hnV][-e][-f][文本文件] ``` > **參數說明**: > > - -e\或--expression=\ 以選項中指定的script來處理輸入的文本文件 ...
  • 要使用 `systemctl` 啟動單個服務,其中包含多個進程,你可以使用 Systemd 的 `template` 機制。以下是使用 Systemd 'template' 以創建一個可同時啟動多個進程的服務單元文件的過程: 1. 為你的服務創建一個 template 服務單元文件。服務單元文件通常 ...
  • # 欄位類型 | 數據類型 | 位元組 | 範圍 | | | | | |TINYINT|1 位元組|-2^7 + 1 ~ 2^7 - 1| |SMALLINT|2 位元組|-2^15 + 1 ~ 2^15 - 1| |INT|4 位元組|-2^31 + 1 ~ 2^31 - 1| |BIGINT|8 位元組| ...
  • 摘要:條件表達式函數中出現結果集不一致問題,我們首先要考慮是否入參數據類型不一致導致出參不一致。 本文分享自華為雲社區《GaussDB(DWS)條件表達式函數返回錯誤結果集排查》,作者:yd_211369925 。 (一)案例背景 客戶使用greatest獲取並返回參數列表中值最大的表達式的值,子查 ...
  • 好久沒更新博客了,因為工作越來越忙,沒什麼時間去記錄一些問題,最近閑下來一點,由於某些原因不得不暫時在Windows下做開發,項目用到了node-canvas處理圖片什麼的,在安裝的時候各種報錯,確實讓人很抓狂,這裡簡單記錄下: 首先說明下,node-canvas的 官方git倉庫 https:// ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...