如何用正则表达式验证用户名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式验证用户名相关的知识,希望对你有一定的参考价值。
我的用户名规则如下: 用户名由 3-10位的字母下划线和数字组成。不能以数字或下划线开头。只能已字母开头。允许全部是字母。 如何用正则表达式实现????知道的朋友请告知。谢谢。
//中文和英文结合而且6-20字符$preg=\'/^[a-zA-Z\\x4e00-\\x9fa5]6,20$/u\';
//英文、数字、下划线6-20位字符
$preg=\'/^[\\w\\_]6,20$/u\';
过滤非法字符防止SQL注入漏洞,只能另说,对不同的接口和参数有针对性的过滤,没有通用的正则。 参考技术A ^[a-zA-z][a-zA-Z0-9_]2,9$ 参考技术B 楼主可以数字和字母随意组合,
如何用正则表达式实现规定用户输入密码的格式为:(长度6到18个字符,不能全为重复字母,或者连续字母)
例如aaaaaa或者abcdefgh这样都不通过,但是aabbcccdddd可以。如果js不能实现,用什么方法可以实现?
// 存在一个你不容易发现的问题,基本能解决你的问题/**
* checkPassword函数,参数为要检验的密码pwd,
* 如果pwd符合规则,返回true,否则返回false
*/
function checkPassword(pwd)
// 长度为6到18个字符
var reg = /^.6,18$/;
if(!reg.test(pwd))
return false;
// 全部重复
var repeat = true;
// 连续字符
var series = true;
var len = pwd.length;
var first = pwd.charAt(0);
for(var i=1;i<len;i++)
repeat = repeat && pwd.charAt(i) == first;
series = series && pwd.charCodeAt(i) == pwd.charCodeAt(i-1) + 1;
return !(repeat || series);
参考技术A function checkPwd(str)
var str=str.replace(/(^\\s*)|(\\s*$)/g,''),
len=str.length,
error='error:none', // 无错误
repeat=new RegExp('(\\\\w)\\\\1'+(len-1)+''),
series='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
if(len<6 || len>18)
error='error:length'; // 错误:字符数
else if(repeat.test(str))
error='error:repeat'; // 错误:重复
else if(series.indexOf(str)>=0)
error='error:series'; // 错误:连续
// alert(error); 测试用
return error=='error:none';
参考技术B 这个要用正则+js判断来作
正则可以判断长度以及是否为字母,但是无法判断输入数据是否重复和连续
以上是关于如何用正则表达式验证用户名的主要内容,如果未能解决你的问题,请参考以下文章