我有一个要检查的字符串,如果只有数字和数字执行另一个操作,则退出;
$data = 123412347JB91742F;
if(preg_match('/[A-Z1-9]/', $data )) {
echo $data;
}
else {
exit;
}
这样可以正常工作,但如果我向$data
添加任何内容,如$
或任何其他东西,它仍会打印该值。这段代码有什么问题?
$data = preg_replace('/\-/', '', '1234-1234-JB91-8742F');
if(preg_match('/^[A-Z1-9]+$/', $data )) {
echo $data;
} else {
exit;
}
答案 0 :(得分:2)
您的正则表达式只会检查该集合中是否至少有一个字符。请尝试使用此正则表达式:
/^[A-Z1-9]+$/
锚点^
和$
标记字符串的开头和结尾。
答案 1 :(得分:2)
您的代码应如下所示:
preg_match('/^[A-Z1-9]+$/', $data)
您想匹配零和小写字符吗?然后你的正则表达式应该是这样的:
preg_match('/^[A-Z0-9]+$/i', $data)