PHP正则表达式数字加一个字母

PHP regular expression numeric plus one letter

我正在尝试对数字输入加上字母 X 或 x 进行验证。到目前为止我有:

if(preg_match('/[^0-9xX]+$/', $data)) return 'error';

对于除 a123 之外的所有情况,它都是正确的 returns 错误。有人知道为什么吗?

在正则表达式的开头使用 ^ 来检查是否是完整字符串而不是子字符串。

if(preg_match('/^[0-9xX]+$/', $data))
    return 'error';

试试这个:

if(preg_match('/^[0-9x]+$/i', $data)){
 echo 'match';
}else{
 echo 'no match';
}

它和你的一样,只是反过来了。 ^ 是字符串的开头。 $ 为字符串的结尾。所以整个字符串必须匹配模式。

if(!preg_match('/^([0-9]+|[xX])$/', $data)) return 'error';

也许这样会更好, 匹配正确的大小写,在匹配结果前加上!

我不明白。

if(preg_match('/^[0-9xX]+$/', $data)) return 'error';

当我们输入 123 时仍然没有 return 错误。

如有误会请见谅

if(preg_match('/[0-9]xX$/', $data)) return 'error';

所有数字后面都会有xX。 CMIIW.