只允许一个字母字符- RegEx


Allowing only one alpha character - RegEx

我试图只允许一个字符使用regex,但似乎它是允许多个金额通过。

I have try this.

$char = trim($_REQUEST['char']);
/* Validate char */
if (preg_match('/[^a-zA-Z]{1}/', $char)) {
    $char = 'a';
}
echo $char;

这. .

$char = trim($_REQUEST['char']);
/* Validate char */
if (!preg_match('/[a-zA-Z]{1}/', $char)) {
    $char = 'a';
}
echo $char;

但是都不行。它们总是输出结果,即使$_REQUEST['char']等于aa

您正在匹配一个字符,但您不是只匹配一个字符。任何至少有一个alpha字符的字符串都将传递当前的正则表达式。

if (!preg_match('/^[a-zA-Z]$/', $char)) {
    $char = 'a';
}

^表示字符串的开始,$表示字符串的结束。在这种情况下不需要{1}

您也可以在if语句中检查strlen($char) == 1

给你。您需要使用^来匹配开始,使用$来匹配字符串的结束。

<?
$char = "aa";
/* Validate char */
if (preg_match('/^[a-zA-Z]$/', $char)) {
   echo "found only ONE char";
} else {
echo "one single char not found"
}
?>