驗(yàn)證郵箱格式的正確與否;你的第一解決方案是什么呢?
不管你們?cè)趺此伎嫉?;反正我首先想到的就是字符串查找看是否有@符號(hào);
但是對(duì)于結(jié)尾的.com或者.net 亦或者.cn等等越來(lái)越多的域名驗(yàn)證感覺(jué)棘手;
直到了某一天認(rèn)真的研究了filter_var()函數(shù)的參數(shù);
我對(duì)以前走馬觀花式的閱讀php文檔表示深深的慚愧;
其實(shí)filter_var()第二個(gè)參數(shù)傳FILTER_VALIDATE_EMAIL即可驗(yàn)證郵箱、略加整理就如下;
/** * 驗(yàn)證是否是郵箱 * @param string $email 郵箱 * @return boolean 是否是郵箱 */ function is_email($email){ if(filter_var($email,FILTER_VALIDATE_EMAIL)){ return true; }else{ return false; } } var_dump(is_email(\'baijunyao@baijunyao.com\')); // 打印 ture var_dump(is_email(\'baijunyao.com\')); // 打印 false
經(jīng)研究;這個(gè)函數(shù)驗(yàn)證郵箱的規(guī)則就是要有個(gè)@符號(hào);
然后@符號(hào)后面還要有個(gè)英文句號(hào). ;
咦?看到baijunyao.com;那有木有一個(gè)可以驗(yàn)證url域名的函數(shù)?
恩;沒(méi)錯(cuò);有的;第二個(gè)參數(shù)傳FILTER_VALIDATE_URL就是用來(lái)驗(yàn)證url的;
/** * 驗(yàn)證是否是url * @param string $url url * @return boolean 是否是url */ function is_url($url){ if(filter_var($url,FILTER_VALIDATE_URL)){ return true; }else{ return false; } } var_dump(is_url(\'http://baijunyao.com\'));// 打印 true var_dump(is_url(\'baijunyao.com\'));// 打印 false var_dump(is_url(\'http://a\'));// 打印 true
根據(jù)打印的結(jié)果可知;判斷是否是url的規(guī)則就是要有http://后邊要跟一個(gè)字母數(shù)字即可;
當(dāng)然;順理成章;第二個(gè)參數(shù)傳FILTER_VALIDATE_IP的時(shí)候就是驗(yàn)證是否是ip地址了;
filter_var很強(qiáng)大的樣子;那傳個(gè)FILTER_VALIDATE_PHONE 是不是就可以驗(yàn)證手機(jī)號(hào)了?
恩恩;;;答案是否定的;你想多了;
別看了;這是做文章封面圖用的;