如何检查用户名是否仅包含英文字母,标点符号和数字?

时间:2010-07-10 10:37:31

标签: php

如何检查用户名是否仅包含英文字母,标点符号和数字?

谢谢。

3 个答案:

答案 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相比有多快...)