php使用preg_match验证字符串

时间:2012-12-27 15:10:18

标签: php string validation preg-match

我试图在PHP中用preg_match验证输入字符串只包含“a-z,A-Z, - ,_,0-9”字符。如果它只包含这些,那么验证。

我试图在谷歌搜索,但我找不到任何有用的东西。

有人可以帮忙吗?

谢谢!

3 个答案:

答案 0 :(得分: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 :(得分:0)

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

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

答案 2 :(得分:0)

您可以使用preg_replace($ pattern,$ replacement,$ subject):

if (preg_replace('/[A-Za-z0-9\-\_]/', '', $string)) {
  echo "Detect non valid character inside the string";
}

想法是删除任何有效的字符,如果结果不为空,请执行代码。