我试图只允许一个单一的角色起诉正则表达式,但它似乎允许多个金额通过.
我试过这个..
$char = trim($_REQUEST['char']);
/* Validate char */
if (preg_match('/[^a-zA-Z]{1}/', $char)) {
$char = 'a';
}
echo $char;
Run Code Online (Sandbox Code Playgroud)
还有这个..
$char = trim($_REQUEST['char']);
/* Validate char */
if (!preg_match('/[a-zA-Z]{1}/', $char)) {
$char = 'a';
}
echo $char;
Run Code Online (Sandbox Code Playgroud)
但是没有工作.即使$_REQUEST['char']等于,它们也总是输出结果aa.
你匹配一个字符,但你不配套只有一个字符.具有至少一个字母字符的任何字符串都将通过您当前的正则表达式.
if (!preg_match('/^[a-zA-Z]$/', $char)) {
$char = 'a';
}
Run Code Online (Sandbox Code Playgroud)
该^指示字符串的开始,而$表示结束.{1}在这种情况下不需要.
您也可以strlen($char) == 1在if声明中查看.