我正在尝试使用 preg_match 在 PHP 中验证输入字符串仅包含“az、AZ、-、_ ,0-9”字符。如果它只包含这些,则验证。
我试图在谷歌上搜索,但我找不到任何有用的东西。
有人可以帮忙吗?
谢谢 !
我正在尝试使用 preg_match 在 PHP 中验证输入字符串仅包含“az、AZ、-、_ ,0-9”字符。如果它只包含这些,则验证。
我试图在谷歌上搜索,但我找不到任何有用的东西。
有人可以帮忙吗?
谢谢 !
'/^[A-Za-z0-9_-]*$/'
如果空字符串也有效,请使用模式。否则'/^[A-Za-z0-9_-]+$/'
所以:
$yourString = "blahblah";
if (preg_match('/^[A-Za-z0-9_-]*$/', $yourString)) {
#your string is good
}
另外,请注意,您希望在字符类的最后放置一个“-”作为字符类的一部分,这样它就会被读取为文字“-”,而不是两个字符之间的破折号,例如 AZ 之间的连字符。
$data = 'abc123-_';
echo preg_match('/^[\w|\-]+$/', $data); //match and output 1
$data = 'abc..';
echo preg_match('/^[\w|\-]+$/', $data); //not match and output 0
您可以使用 preg_replace($pattern, $replacement, $subject):
if (preg_replace('/[A-Za-z0-9\-\_]/', '', $string)) {
echo "Detect non valid character inside the string";
}
这个想法是删除任何有效的字符,如果结果不为空,则执行代码。