如何检查用户名是否仅包含英文字母,标点符号和数字?
谢谢。
答案 0 :(得分:5)
preg_match('/^[a-z0-9\p{P}]*$/i', $subject);
如果1
仅由英文字母,数字和标点符号组成,则会返回$subject
。否则,它将返回0
。
答案 1 :(得分:3)
您可以使用正则表达式:
<?php
$username1 = 'user.03';
$username2 = 'c@fé';
if(preg_match('/[^0-9A-Z.!`&\'-]/i',$username1))
echo 'fail';
else
echo 'pass';
if(preg_match('/[^0-9A-Z.!`&\'-]/i',$username2))
echo 'fail';
else
echo 'pass';
?>
这将拒绝任何不是的字符:数字,普通字母(没有重音符号)或。 ! `&amp; ' -
答案 2 :(得分:2)
对于微型刺激器:
!isset($username[strcspn($username, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.!?:`&\'"-')]);
(不要使用它!)
(很想知道与RegExp相比有多快...)