一个验证用户名的正则表达式

求一个验证用户名的正则表达式
各位大哥大姐,晚辈求一个验证用户名的正则表达式,苦苦思索了一个星期还是没有弄出来,本人愚钝,还望大家指教!
VBscript编程要求用户名的字符控制在3至20个之间,由中文、大小写字母、数字、下划线、小数点、减号组成,  必须以中英文或数字开头结尾且下划线、小数点、减号这三个字符中的其中一个的组合不能是连续的 a__a或a--a或a..a 这样的,但可以 a_a.a_a.a_a-a-a-a_a-a.a.a.a这样的。
如果超出这个范围则用户名不通过。
就是一直弄不明白下划线、小数点、减号这三个字符中的其中一个的组合的问题,头都大了
此为不符合的正则:
^.{0,2}$|.{21,}|^[^A-Za-z0-9\u4E00-\u9FA5]|[^\w\u4E00-\u9FA5.-]|([_.-])\1

function regtest(str)
Set re = New RegExp
re.Pattern = "^.{0,2}$|.{21,}|^[^A-Za-z0-9\u4E00-\u9FA5]|[^\w\u4E00-\u9FA5.-]|([_.-])\1"
if re.Test(str) then
msgbox("不符合")
else
msgbox("符合")
end if
end function

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(?!pattern) 
负向预查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

(0)

相关推荐

  • javascript IP、域名、手机号码正则表达式验证代码

    这个手机号码正则验证函数可以说是最新的都支持的,里面有详细的介绍说明,不论以后增加什么号段大家都非常容易的稍微修改一下即可.javascript 手机号码正则表达式验证函数 复制代码 代码如下: //ip与域名验证函数 function checkIP() {     var ipArray,ip,j;     ip = document.ipform.ip.value; if(/[A-Za-z_-]/.test(ip)){         if (ip.indexOf(" ")>

  • 最新密码验证正则表达式

    正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了php密码验证正则表达式.python密码强度正则,当然还有大家常用到的js正则表达式,希望大家喜欢. 刚开始复习一下,什么是正则表达式? 在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. php密码验证正则表达式(8位长度限制) <?php //密码验证 $password

  • php 手机号码验证正则表达式

    比较简洁的代码一: $str = ''; $isMatched = preg_match('/^0?(13|14|15|17|18)[0-9]{9}$/', $str, $matches); var_dump($isMatched, $matches); 代码二 <?php //正则表达式 $tel = "15558530459"; //作者的手机号码,如果有疑问可以电话联系我,或者QQ联系我,我的QQ是mezongzi@qq.com if (strlen($tel) == &q

  • jquery正则表达式验证(手机号、身份证号、中文名称)

    本文实例需要验证的内容:中文姓名.手机号.身份证和地址,验证方法分享给大家供大家参考,具体内容如下 HTML(表单): <form action=""> <div class="form-group"> <label>姓名:</label> <input id="name" type="text"> </div> <div class="f

  • JS正则表达式验证密码格式的集中情况总结

    1.密码必须为6-18位字母.数字.特殊符号的: var reg =/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{6,18}$/; 2.密码必须为6-18位字母.数字 var reg=/^(?![^a-zA-Z]+$)(?!\D+$)/ 3.支持字母.数字.标点符号.特殊字符 var reg=/^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?

  • js正则表达式验证密码强度【推荐】

    效果图: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>验证密码强度</title> <style type="text/css"> *{margin: 0;padding: 0;} body{background:#ccc;} #demo{width:400

  • js验证电话号码手机号码的正则表达式

    下面提供的几款关于js 验证电话号码手机号码正则表达式,是我从网上收藏了,不过都是精品,专业针对手机号与电话号码进行验证的. 复制代码 代码如下: function checkPhone(phone) { //验证电话号码手机号码,包含153,159号段 if (phone==""){ alert("电话号码不能为空!"); return false; } if (phone != ""){ var p1 = /^(([0+]d{2,3}-)?(

  • php password密码验证正则表达式(8位长度限制)

    复制代码 代码如下: <?php //密码验证 $password = "zongzi_Abc_oo13a2"; $n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array); //长度是8或更多 var_dump($array); ?>

  • javascript 手机号码正则表达式验证函数 原创

    复制代码 代码如下: function checkMobile(){     var sMobile = document.mobileform.mobile.value     if(!(/^1[3|4|5|8][0-9]\d{4,8}$/.test(sMobile))){         alert("不是完整的11位手机号或者正确的手机号前七位");         document.mobileform.mobile.focus();         return false;

  • 正则表达式验证用户名、密码、手机号码、身份证(推荐)

    废话不多说了,下面给大家介绍使用正则表达式验证用户名.密码.手机号码.身份证的写法,需要的的朋友参考下吧 //用户名 + (BOOL) validateUserName:(NSString *)name { NSString *userNameRegex = @"^[A-Za-z0-9]{3,20}+$"; NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@&q

随机推荐