2012-12-27 157 views
4

我想在PHP中用preg_match驗證輸入字符串中是否只包含「a-z,A-Z, - ,_,0-9」字符。如果它包含這些,然後驗證。PHP使用preg_match驗證字符串

我試圖在谷歌搜索,但我找不到任何有用的東西。

任何人都可以幫忙嗎?

謝謝!

+1

哪個輸家倒了我的問題? – NVG

回答

3

使用模式'/^[A-Za-z0-9_-]*$/',如果空字符串也是有效的。否則'/^[A-Za-z0-9_-]+$/'

所以:你要放一個

$yourString = "blahblah"; 
if (preg_match('/^[A-Za-z0-9_-]*$/', $yourString)) { 
    #your string is good 
} 

此外,請注意 - 最後在字符類的字符類的一部分,這樣它讀作文字「」「 - 」而不是兩個字符之間的連字符,例如AZ之間的連字符。

+1

如果「preg_match('/^[A-Za-z0-9 _-] * $ /',$ yourString」返回0,如果它不匹配,會發生什麼?您仍然驗證它,對吧? – NVG

+0

好的說明。這個例子,如果preg_match不是0或者FALSE,那麼你就很好。 – DWright

0
$data = 'abc123-_'; 
echo preg_match('/^[\w|\-]+$/', $data); //match and output 1 

$data = 'abc..'; 
echo preg_match('/^[\w|\-]+$/', $data); //not match and output 0