本文目录一览:
- 1、php写出一个验证用户ID的正则表达式
- 2、PHP 注册表单的正则验证
- 3、php 用户名和密码 正则表达式
- 4、php正则表达式验证用户名
- 5、php 判断 用户名 英文或者数字
- 6、用PHP写用户名验证..注意我的正则表达式用法是否正确
php写出一个验证用户ID的正则表达式
"/^[^\x{4e00}-\x{9fa5}A-Za-z0-9_-\.]+$/u"
用preg_match函数
对于uft-8验证,gbk的也差不多,就中文验证可能不一样
2到24位就不好说了,尤其中文,在utf-8下,字符位数不一样,php中用使用mb_strlen来计算长度,中文都算一个字符,在使用mb_strlen函数时首先应该设置编码字符集,mb_internal_encoding('utf-8'),或者,在mb_strlen中第二个参数给出编码集
中文utf-8在mysql中也是算一个字符
PHP 注册表单的正则验证
我举个例子撒
假如你表单是这么写
用户名: input name="username" value="" / 注意name为 username
表单用POST方式提交 即form 的method 属性为post
在PHP中这么验证,
假设我要这个用户名只能是 10-32位 数字英文下划线组合,且第一位必须字母
empty($_POST['username']) $_POST['username'] = '';
if(!preg_match('/^[a-zA-Z0-9\_]{10,32}$/',$_POST['username'])) exit('用户名不合法');
if(!preg_match('/^[a-zA-Z]/',$_POST['username'])) exit('第一位必须是字母');
正则表达式就是 两个/中间的部分了
^表示前面没有任何字符了
$表示结尾没有任何字符了
[a-zA-Z0-9\_]表示匹配规则集
每个字符都必须 是 小写字母a-z 或 大写字母A-Z 或 数字0-9 或者下划线_ 其中\表示转义符 用于转义一些特殊字符
{16,32} 表示匹配次数为 16次到32次,少于16 或多于32 均为不合格,如果不限制长度 可以直接写为 + 即 [a-zA-Z0-9]+ 或者指定一个长度 {10}
关于其他的表达式 百度搜索下就行了,都是通用的
例如
匹配手机号 /^1[0-9]{10}$/
php 用户名和密码 正则表达式
/^[A-Za-z0-9_\u4e00-\u9fa5]{3,15}$/ 用户名
/^[^\u4e00-\u9fa5\s]{6,20}$/ 密码
php正则表达式验证用户名
//中文和英文结合而且6-20字符
$preg='/^[a-zA-Z\x{4e00}-\x{9fa5}]{6,20}$/u';
//英文、数字、下划线6-20位字符
$preg='/^[\w\_]{6,20}$/u';
过滤非法字符防止SQL注入漏洞,只能另说,对不同的接口和参数有针对性的过滤,没有通用的正则。
php 判断 用户名 英文或者数字
用正则来判断,如检查是否数字的代码: 1 2 if(preg_match("/^\d*$/",$fgid)) echo('是数字'); else echo('不是数字'); 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
用PHP写用户名验证..注意我的正则表达式用法是否正确
$pattern="/\w/";这里有问题,一个字符啊。
得用/^\w+$/哦,/^[_a-zA-Z0-9]+$/也行
其实字符个数你都可以写到正则里面不用再额外判断f($newname==""||$newname.length6||A.lenth16||!pattern.test(A))
写成
$pattern="/^[a-zA-Z][_a-zA-Z0-9]{5,15}$/"(6-16位字符,字母开头,只包含字母数字下划线)然后只用
f($newname==""||!pattern.test(A))来判断就可以了