在PHP開(kāi)發(fā)中,常需要在表單提交時(shí)對(duì)用戶(hù)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,以保證程序的正確性和安全性。
ereg()函數(shù)就是一種常用的驗(yàn)證函數(shù),用于判斷一個(gè)字符串是否符合指定的正則表達(dá)式格式。它的語(yǔ)法為:
ereg( $pattern, $string )
其中,$pattern為正則表達(dá)式模式,$string為需要驗(yàn)證的字符串。
舉個(gè)例子,如果要判斷一個(gè)字符串是否為純數(shù)字,就可以使用ereg()函數(shù),代碼如下:
$input = "12345"; if (ereg('^[0-9]+$', $input)) { echo "輸入的是純數(shù)字!"; } else { echo "輸入的不是純數(shù)字!"; }
在上面的代碼中,正則表達(dá)式模式^[0-9]+$表示字符串的開(kāi)頭和結(jié)尾必須是數(shù)字,并且可以包含任意多個(gè)數(shù)字。
除了判斷純數(shù)字外,ereg()函數(shù)還可以用于驗(yàn)證手機(jī)號(hào)、郵箱、身份證等各種格式。比如,要判斷一個(gè)字符串是否為合法的郵箱地址:
$email = "abc@test.com"; if (ereg('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+', $email)) { echo "輸入的是合法的郵箱地址!"; } else { echo "輸入的不是合法的郵箱地址!"; }
在上述代碼中,使用了正則表達(dá)式模式^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+來(lái)判斷當(dāng)前字符串是否符合郵箱地址的格式。
除了ereg()函數(shù)外,PHP還提供了preg_match()函數(shù)用來(lái)進(jìn)行正則表達(dá)式匹配。和ereg()函數(shù)相比,preg_match()函數(shù)具有更高的執(zhí)行效率,因?yàn)樵赑HP 5.3.0版本中廢棄了ereg()函數(shù)。
使用preg_match()函數(shù)判斷是否為純數(shù)字的代碼如下:
$input = "12345"; if (preg_match('/^[0-9]+$/', $input)) { echo "輸入的是純數(shù)字!"; } else { echo "輸入的不是純數(shù)字!"; }
和ereg()函數(shù)類(lèi)似,preg_match()函數(shù)的第一個(gè)參數(shù)也是正則表達(dá)式模式,第二個(gè)參數(shù)是需要驗(yàn)證的字符串。
總之,在PHP開(kāi)發(fā)中,正則表達(dá)式時(shí)常用到的工具。使用ereg()函數(shù)或preg_match()函數(shù)能夠有效地對(duì)用戶(hù)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,提高程序的健壯性和安全性。