正则表达式 preg_match 无法匹配大写字母和数字 albumID
regex preg_match not working to match uppercase alpha and numeric albumID
我需要验证 albumID 输入是 2 个大写字母和 3 个数字。我用 http://regexr.com/ and also http://www.tutorialspoint.com/php/php_preg_match.htm 来确认这个
preg_match('/([A-Z]{2}[0-9]{3})/', $albumid)
应该可以,但不是:
<?php
// define variables and set to empty values
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid))
{
$albumid = test_input($_POST["albumid"]);
$albumidErr = print $albumid;
}
else {
$albumidErr = " Album ID must be 2 Uppercase letters and 3 numbers (i.e. BI010)";
}
}
?>
<form method="post" action="
<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<p>
<label for="albumid">*Album ID:</label>
<?php echo $albumidErr;?><br>
<input type="text" name="albumid" id="albumid"/>
</p>
<p>
<input type="submit" name="submit" id="submit" value="submit"/>
</p>
</form>
在您的代码中:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid))
你让 $albumid
为空然后你试图用这个空字符串匹配正则表达式,当然,它不匹配。
我猜你想要:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $_POST["albumid"]))
// ^^^^^^^^^^^^^^^^^
您可以添加锚点:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/^([A-Z]{2}[0-9]{3})$/', $_POST["albumid"]))
我需要验证 albumID 输入是 2 个大写字母和 3 个数字。我用 http://regexr.com/ and also http://www.tutorialspoint.com/php/php_preg_match.htm 来确认这个
preg_match('/([A-Z]{2}[0-9]{3})/', $albumid)
应该可以,但不是:
<?php
// define variables and set to empty values
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid))
{
$albumid = test_input($_POST["albumid"]);
$albumidErr = print $albumid;
}
else {
$albumidErr = " Album ID must be 2 Uppercase letters and 3 numbers (i.e. BI010)";
}
}
?>
<form method="post" action="
<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<p>
<label for="albumid">*Album ID:</label>
<?php echo $albumidErr;?><br>
<input type="text" name="albumid" id="albumid"/>
</p>
<p>
<input type="submit" name="submit" id="submit" value="submit"/>
</p>
</form>
在您的代码中:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid))
你让 $albumid
为空然后你试图用这个空字符串匹配正则表达式,当然,它不匹配。
我猜你想要:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/([A-Z]{2}[0-9]{3})/', $_POST["albumid"]))
// ^^^^^^^^^^^^^^^^^
您可以添加锚点:
$albumidErr = $albumid = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (preg_match('/^([A-Z]{2}[0-9]{3})$/', $_POST["albumid"]))