PHP正規表示法,驗證Email格式
相信很多人都會用正規表示法來驗證字串吧!
但你了解那些正規表示法的意思嗎?
網路上有人整理出一些基本格式,就來和大家分享一下
怎麼驗證user輸入的字串,符可自已想要的格式。
preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/', $email)
// 正確: true, 錯誤: false
文章轉自[PHP] [其他] 無痛學習【正規表示法(Regular expressions)】
雖然PHP提供很多函式可以應用在表單資料格式的驗證上,但是,最方便的還是使用【正規表示法】去驗證資料格式(註:正規表示法有很多種格式,PHP使用的是POSIX),在此介紹一些最基本的用法...
PHP使用正規表示法進行驗證,需搭配preg_match()之類的函式來使用,例如:preg_match("/(正規條件字串)/","(欲驗證字串)"),如果欲驗證字串符合正規條件字串,則回傳true,反之回傳false。
基本用法:
preg_match("/b/","abcd");---true
preg_match("/b/","ABCD");---false
preg_match("/bc/","abcd");---true
preg_match("/bc/","abxxxcd");---false
preg_match("/abcd/","b");---false
特殊符號-中介字元:
1.比對任何字元---"."
preg_match("/a.c/","abc");---true
preg_match("/a.c/","a1c");---true
preg_match("/a.c/","a@c");---true
2.比對任何數字字元---"\d" (註:與[0-9]相同)
preg_match("/\d/","1");---true
preg_match("/\d/","a");---false
preg_match("/\d/","@");---false
3.比對任何文數字元---"\w" (註:與[a-zA-Z0-9]相同)
preg_match("/\w/","1");---true
preg_match("/\w/","a");---true
preg_match("/\w/","@");---false
4.比對空白字元(包括空格、tab、換行enter)---"\s"
preg_match("/\s/"," ");---true (註:空格)
preg_match("/\s/"," ");---true (註:tab)
preg_match("/\s/","
");---true (註:換行enter)
preg_match("/\s/","a");---false
5.字串需以指定字元或字串起始---"^" (註:^符號前不能有任何字元)
preg_match("/^b/","bc");---true
preg_match("/^b/","abc");---false
preg_match("/^\d/","1a");---true
preg_match("/^\d/","a1");---false
preg_match("/^\d\d/","12");---true
preg_match("/^\d\d/","1x2");---false
preg_match("/^abc/","abcde");---true
preg_match("/^abc/","xabcde");---false
preg_match("/^abc/","axbcde");---false
6.字串需以指定字元或字串結束---"$" (註:$符號後不能有任何字元)
preg_match("/b$/","ab");---true
preg_match("/b$/","abc");---false
preg_match("/\d$/","a1");---true
preg_match("/^\d/","1a");---false
preg_match("/abc$/","xabc");---true
preg_match("/abc$/","abcd");---false
preg_match("/abc$/","axbc");---false
特殊符號-量詞:
1.量詞前指定字元有出現0次或多次---"*" (註:與{0,}相同)
preg_match("/a*/","");---true
preg_match("/a*/","a");---true
preg_match("/a*/","aa");---true
2.量詞前指定字元有出現1次或多次---"+" (註:與{1,}相同)
preg_match("/a+/","");---false
preg_match("/a+/","a");---true
preg_match("/a+/","aa");---true
3.量詞前指定字元有出現0次或1次---"?" (註:與{0,1}相同)
preg_match("/a?/","");---true
preg_match("/a?/","a");---true
preg_match("/a?/","aa");---true
4.量詞前指定字元有出現n次---"{n}"
preg_match("/a{1}/","");---false
preg_match("/a{1}/","a");---true
preg_match("/a{1}/","aa");---true
註:在正規表示法中也可以使用數學式中的"()"
沒有留言:
張貼留言