學習正規表示式(js、C#)
js中的正規表示式使用
function myValid() { var errorMsg = ""; var res = true; //拿到要驗證的值. var receiveName = $("#receiveName").val();//姓名 var receiveMobile = $("#tMobile").val();//手機號 var validCode = $("#validCode").val();//驗證碼 var regName = /^[\u4e00-\u9fa5]{2,4}$/;//驗證姓名 var regMobile = /^1[3|4|5|7|8][0-9]\d{8}$/;//驗證手機 var regCode = /^\d{4}$/;//驗證碼 if (!regName.test(receiveName)) { errorMsg += "姓名格式不正確;\n\r"; res = false; } if (!regMobile.test(receiveMobile)) { errorMsg += "手機號格式不正確;\n\r"; res = false; } if (!regCode.test(validCode)) { errorMsg += "請輸入4位的數字驗證碼;\n\r"; res = false; } if (!res) { $.ligerDialog.error(errorMsg, "錯誤提示"); } return res; }
C#中的正規表示式使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 正規表示式 { using System.Text.RegularExpressions;//正規表示式的名稱空間 class Program { static void Main(string[] args) { /* * 正則的匹配原則: * 1.只關注有沒有能夠進行匹配的字串,而不關注它的位置,及其它不能匹配的部分。 * 2.貪婪模式:正則會盡可能多的進行匹配,也就意味著它會匹配到能夠進行匹配的最後一個字串 */ while(true) { string str = Console.ReadLine(); #region 元字元_佔位符 //方法的作用是 判斷str是否匹配 自定義的正規表示式規則 //1. .:代表一個字元佔位,可以代表任意一個字元,必須傳入一個字元,可以是中文 Console.WriteLine(Regex.IsMatch(str, "b.g")); //2.[]:代表一個指定範圍的單個字元,你可以指定間斷的值,也可以指定連續的範圍: 0-9 A-Z a-z 合法字元:0-9 A-Z a-z _ Console.WriteLine(Regex.IsMatch(str, "b[0-9]g")); //在正則裡面,^只能寫在開頭,如果在中間寫,^就是一個普通的字元了 Console.WriteLine(Regex.IsMatch(str, "b[0-9A-Z^a-z_]g")); Console.WriteLine(Regex.IsMatch(str, "b[^0-9A-Za-z_^]g")); //這裡[0-z]會包含0-z之間的所有字元,也包含一些特殊符號 //正在分析“b[9-1]g”- [x-y] 範圍的順序顛倒。 只能按ASCII碼的順序從小到大 Console.WriteLine(Regex.IsMatch(str, "b[9-1]g")); Console.WriteLine(Regex.IsMatch(str, "b[0-9-]g")); // 11-19 Console.WriteLine(Regex.IsMatch(str, "[11-19]")); // 1 1-1 9 Console.WriteLine(Regex.IsMatch(str, "b[^0-9]g")); // |:或者 Console.WriteLine(Regex.IsMatch(str, "[0-9][0-9]|[0-9][0-9][0-9]")); //hjasdgf1234fjhadsjfhas // 如果涉及到嚴格的位數匹配,就需要新增 開始 ^和結束$:代表字元從開始到結束必須嚴格的匹配正則 Console.WriteLine(Regex.IsMatch(str, "^[0-9][0-9]$|^[0-9][0-9][0-9]$")); //包含在[]裡面的都是普通字元,而不是元字元,除了^--需要後面有內容,如果需要匹配,則可以考慮使用轉義\ Console.WriteLine(Regex.IsMatch(str, @"^\^$")); Console.WriteLine(Regex.IsMatch(str, "^\\^$")); #endregion #region 元字元_修飾符 // *:它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾 *前面的子表示式出現0次或者多次:子表示式就是預設指*前面的那一個字元,如果需要代表多個,就使用()包含 Console.WriteLine(Regex.IsMatch(str, "ab*g")); Console.WriteLine(Regex.IsMatch(str, "^(ab)*g$")); //+:它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾 +前面的子表示式出現1次或者多次:子表示式就是預設指+前面的那一個字元,如果需要代表多個,就使用()包含 Console.WriteLine(Regex.IsMatch(str, "a+g")); //? :它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾 ?前面的子表示式出現0次或者1次:子表示式就是預設指?前面的那一個字元,如果需要代表多個,就使用()包含 Console.WriteLine(Regex.IsMatch(str, "^a?g$")); // {n,m}:{n,m}它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾{n,m}前面的子表示式最少出現n次,最多出現m次 Console.WriteLine(Regex.IsMatch(str, "^[0-9]{3,4}$")); //{n}:它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾{n}前面的子表示式只能出現n次 Console.WriteLine(Regex.IsMatch(str, "^[1-9][0-9]{17}$|^[0-9]{15}$|^[0-9]{17}[xX]$")); //{n,}:它不是一個字元佔位,說明它本身並不代表一個字元,它是用來修飾{n,}前面的子表示式最少出現n次,最多沒有限制 Console.WriteLine(Regex.IsMatch(str, "^[0-9]{3,}$")); Console.WriteLine(Regex.IsMatch(str, "^q*$")); #endregion //在c#中判斷登入名是是否包含特殊符號:[^0-9A-Za-z_] :也不能包含中文 #region 簡寫表示式 //\d:代表一個數字,等同於[0-9] Console.WriteLine(Regex.IsMatch(str, @"^\d{3,}$")); //\D:非數字 Console.WriteLine(Regex.IsMatch(str, @"\D")); //\s:空字元:空格,製表位,換行 Console.WriteLine(Regex.IsMatch(str, @"\s")); //\S:非空白字元 Console.WriteLine(Regex.IsMatch(str, @"\S")); // \w:[0-9 a-z A-Z _ 中文] Console.WriteLine(Regex.IsMatch(str, @"\w")); //\W:除了[0-9 a-z A-Z _ 中文]之外的特殊符號 Console.WriteLine(Regex.IsMatch(str, @"\W")); #endregion } //判斷字串是否為正確的國內電話號碼,不考慮分機。 //010-8888888或010-88888880或010xxxxxxx //0335-8888888或0335-88888888(區號-電話號) //10086、10010、95595、95599、95588(5位) //13888888888(11位都是數字) while (true) { string str = Console.ReadLine(); //不要試圖一步到位,應該一個一個來進行匹配 Console.WriteLine(Regex.IsMatch(str,@"^\d{3,4}[-]?\d{7,8}$|^[1-9]\d{4}$|^1[3-9]\d{9}$")); } //驗證使用者輸入的電子郵箱的合法性 wuhu0723@126.com while (true) { string str = Console.ReadLine(); //不要試圖一步到位,應該一個一個來進行匹配 Console.WriteLine(Regex.IsMatch(str, @"^[0-9A-Za-z_]+[@][0-9A-Za-z_]+[.][A-Za-z]{2,5}$")); } } } }
以上就是關於正規表示式的全部內容,希望對大家的學習有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015107/viewspace-2882755/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過js正規表示式例項學習正規表示式基本語法JS
- js正規表示式基本語法學習JS
- js加固之正規表示式學習筆記JS筆記
- Go 正規表示式學習Go
- js正規表示式速查JS
- 正規表示式學習和練習
- 學習C#高階程式設計之正規表示式C#程式設計
- 如何快速學習正規表示式
- 正規表示式入門學習
- 正規表示式學習筆記筆記
- Day1-學習筆記-js之正規表示式筆記JS
- 瞭解下C# 正規表示式C#
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- JS中的正規表示式JS
- JS助記 ----- 正規表示式JS
- JS基礎:正規表示式JS
- JS金額正規表示式JS
- JS正規表示式入門JS
- JS正規表示式驗證JS
- JS正規表示式總結JS
- 正規表示式學習(2)---字元特性字元
- Python學習筆記 - 正規表示式Python筆記
- java 正規表示式語法學習Java
- JS常用正規表示式及驗證時間的正規表示式JS
- 正規表示式複習
- 正規表示式(初學)
- 從 Vue parseHTML 來學習正規表示式VueHTML
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- 正規表示式re.compile的學習Compile
- JS正規表示式的驗證JS
- JS筆記(15): 正規表示式JS筆記
- js中的正規表示式(1)JS
- 關於JS的正規表示式JS
- 正規表示式學習筆記(1)-認識正則筆記
- learn-regex:正規表示式學習資源
- python 中的正規表示式學習筆記Python筆記
- Python學習筆記|Python之正規表示式Python筆記
- JS常用正規表示式備忘錄JS