2012-12-27 115 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