首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 正則表達式速查手冊:常用驗證模式、JS 前端限制輸入、符號對照表與進階技巧

     編輯:關於C#

常用驗證模式庫(可直接複製)

場景Regex說明
純數字^[0-9]*$
n 位數字^\d{n}$
至少 n 位^\d{n,}$
m~n 位^\d{m,n}$
非零開頭整數^(0|[1-9]\d*)$
兩位小數正實數^\d+(\.\d{2})?$
1~3 位小數^\d+(\.\d{1,3})?$
正整數^\+?[1-9]\d*$
負整數^-[1-9]\d*$
長度 3 字串^.{3}$
英文字母^[A-Za-z]+$
大寫字母^[A-Z]+$
小寫字母^[a-z]+$
字母數字^[A-Za-z0-9]+$
字母數字底線^\w+$
密碼強度^[a-zA-Z]\w{5,17}$字母開頭,6-18 位
排除特殊符號[^%&',;=?$"]+
中文^[\u4e00-\u9fa5]+$
Email^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
URL^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
電話^(\d{3,4}-)?\d{7,8}$含區碼
身分證^\d{15}|\d{18}$15/18 位
月份^(0?[1-9]|1[0-2])$1-12
日期^((0?[1-9])|([12]\d)|30|31)$1-31

前端即時限制輸入(JS onkeyup/onbeforepaste)













Regex 符號完整對照表

符號說明
\轉義/元字元/反向引用/八進制
^字串開頭(多行模式下行首)
$字串結尾(多行模式下行尾)
*零或多次 {0,}
+一次或多次 {1,}
?零或一次 {0,1}
{n}恰好 n 次
{n,}至少 n 次
{n,m}n 到 m 次
? (貪婪控制)緊跟量詞後,非貪婪模式
.除 \n 外任意字元
(pattern)捕獲組,可反向引用
(?:pattern)非捕獲組
(?=pattern)正向前瞻
(?!pattern)負向前瞻
x|y或
[xyz]字元集合
[^xyz]排除集合
[a-z]字元範圍
\b單字邊界
\B非單字邊界
\d數字 [0-9]
\D非數字
\s空白字元
\S非空白
\w單字字元 [A-Za-z0-9_]
\W非單字字元

進階實用片段

  • 去除首尾空白:s.replace(/^\s+|\s+$/g, '') 或 s.trim()
  • HTML 標籤匹配:/<(.*)>.*<\/\1>|<(.*)\/>/(簡易,複雜 HTML 請用解析器)
  • 計算字串視覺長度(中文算 2):s.replace(/[^\x00-\xff]/g, 'aa').length
  • IP 轉長整數:(\d+)\.(\d+)\.(\d+)\.(\d+) → $1*256^3 + $2*256^2 + $3*256 + $4
  • 從 URL 提取檔名:s.replace(/(.*\/){0,}([^.]+).*/, '$2')

效能與維護建議

  1. 複雜 Regex 請加 RegexOptions.Compiled 或 static readonly Regex 快取。
  2. 避免災難性回溯:(a+)+、(a|aa)+ 等嵌套量詞,改用具體字元類別或原子組 (?>...)。
  3. 單元測試覆蓋邊界:空字串、極長輸入、特殊字元、Unicode 類別。
  4. 文件化:在 Regex 旁加註釋說明用途、樣本輸入/輸出、已知限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved