我有这段代码:
echo preg_match ("%^[A-Za-z0-9]$%", stripslashes(trim(X)));
对于X = "peter"
,输出为:0
对于X = "peter."
,输出也为0
但是当我删除^
时,它突然开始起作用了:
echo preg_match ("%[A-Za-z0-9]$%", stripslashes(trim(X)));
对于X = "peter"
,它返回1,对于"peter."
,它返回0。
没有^
使用它是否正确?有点奇怪。
我做错了什么?
答案 0 :(得分:1)
您需要使用*
字符匹配多个字符:
echo preg_match ("%^[A-Za-z0-9]*$%", stripslashes(trim(X)));
或使用+
修饰符
echo preg_match ("%^[A-Za-z0-9]+$%", stripslashes(trim(X)));
仅匹配length() > 0
的字符串。