JS中的match和test正则表达式验证密码或用户名的一种规则
match语法:
字符串.match(正则表达式)
有符合的:返回符合的数组
无符合的:返回null
test语法:
正则表达式.test(字符串)
有符合的:返回true
无符合的 :返回false
该文的密码或用户名格式:
格式1:
描述:以英文字母开头,在6位到20位之间的以字母数字下划线组成的。
正则1描述:以英文字母开头,后面至少5位的字母数字下划线组合,后面的不能多于19位。
格式2:
在以上基础上允许中间有短线字符。
按左到右顺序描述:第一个位是必须是个字母,后面可有若干位字母数字下划线组合,后面至少有5位,加上前面的第一位字母,整个字符串至少有6位。后面至多有19位,加上前面的第一位的字母,整个字符串至多有20位。
一般常见网站上的用户名(用户账号,虽然昵称可以是中文,但是账号名一般都是这种规则,防止重名),有可能就是这种规则。
测试代码 :
<a href="javascript:prn_p1()">点击获取</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn_p1(){
console.log("a".match(/a/));//返回数组
console.log(/a/.test("a"));//返回true
console.log("b".match(/a/));//返回null
console.log(/a/.test("b"));//返回false //密码测试1:以字母开头,只能是字母数字下划线,总长度大于或等于6位,小于或等于20位
console.log("a1234的5位结果:"+/^[a-zA-Z]\w{5,19}$/.test("a1234"));//5位,位数不符合
console.log("a12345的6位结果:"+/^[a-zA-Z]\w{5,19}$/.test("a12345"));//6位
//前面的开头的字母占一位,后面的则需要至少有5位,才能总长度达到6位。
console.log("a1234567890123456789的20位结果:"+/^[a-zA-Z]\w{5,19}$/.test("a1234567890123456789"));//20位
console.log("a12345678901234567890的21位结果:"+/^[a-zA-Z]\w{5,19}$/.test("a12345678901234567890"));//21位,位数不符合
console.log("1234a的以数字开头的结果:"+/^[a-zA-Z]\w{5,19}$/.test("1234a"));//以数字开头,不符合
console.log("a123-4a的含短线的结果:"+/^[a-zA-Z]\w{5,19}$/.test("a123-4a"));//含短线特殊字符,不符合 console.log("-----允许含有短线的另一个正则表达式----")
console.log("a123-4的6带-结果:"+/^[a-zA-Z][\w-]{5,19}$/.test("a123-4"));//含有短线的,符合
console.log("----用大小写字母和数字下划线替换\w----");
//用大小写字母和数字下划线替换\w
console.log("a1234的5位结果:"+/^[a-zA-Z][a-zA-Z0-9_]{5,19}$/.test("a1234"));//5位,位数不符合
console.log("a12345的6位结果:"+/^[a-zA-Z][a-zA-Z0-9_]{5,19}$/.test("a12345"));//6位
console.log("a123-4a的含短线的结果:"+/^[a-zA-Z][a-zA-Z0-9_]{5,19}$/.test("a123-4a"));//含短线特殊字符,不符合
console.log("a123-4a的含短线的结果:"+/^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/.test("a123-4a"));//含短线特殊字符,不符合
};
</script>
图示:

JS中的match和test正则表达式验证密码或用户名的一种规则的更多相关文章
- Python 使用正则表达式验证密码必须包含大小写字母和数字
校验密码是否合法的程序. 输入一个密码 1.长度5-10位 2.密码里面必须包含,大写字母.小写字母和数字 3.最多输入5次 ===================================== ...
- JS的常用正则表达式 验证密码(转载自用)
JS的正则表达式 强:字母+数字+特殊字符 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^& ...
- js中object、字符串与正则表达式的方法
对象 1.object.hasOwnProperty(name) 检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性. 正则表达 ...
- js中, match和exec方法的区别
1. 来源分别为: string.match(reg) 和 RegExp.exec(str): 2. 区别 > 现有 字符串s1 和 正则对象 r1. 目标: 抽出s1中的所有电话号码 ...
- js简单正则表达式验证密码
包含3种及以上 var reg = new RegExp("^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W]+$)(?![a-z\\d]+$)(?![a-z\ ...
- 【转】js中15个常用的正则表达式+正则集合
1 用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //输出 true console.log(uP ...
- JS的常用正则表达式 验证密码用户名等
//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false retur ...
- js 正则表达式验证密码、邮箱格式.....
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js中的jQuery Validate增加手机号码验证
$.validator.addMethod("isPhone", function(value,element) { var length = value.length; var ...
随机推荐
- 使用Optional优雅处理null
先假设一个场景.如下所示 public class Person { private String name; public Person() { } public Person(String nam ...
- 基于Python3+Requests的贴吧签到助手
因为总是忘记签到,所以尝试写了一个签到脚本,因为使用的是Python3,所以没法使用Urllib2,于是选择了Requests,事实证明,Requests比Urllib2好用.整体思路比较简单,就是模 ...
- Zookeeper中的watcher监听和leader选举机制
watcher监听 什么是watcher接口 同一个事件类型在不同的通知状态中代表的含义有所不同,下图列举了常见的通知状态和事件类型. Watcher通知状态与事件类型一览 上图列举了ZooKeepe ...
- PHP获取POST数据的三种方式
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...
- noi.ac #30 思维
\(des\) 给定升序数组 \(A, B\) 对于任意两个集合 \(a, b\) 分别是 \(A, B\) 的子集,总价值为较小的集合的和, 总代价为 \((|a| + |b|) \times w\ ...
- AutoCAD .NET二次开发(一)
其他话不多说,直接进入主题,既然是二次开发,当然是用CAD平台已经封装好了很多类,我们需要熟悉和使用它们.常用的AutoCAD .NET API的四个主要DLL文件是: 名称 作用 备注 AcDbMg ...
- 安装php的oracle扩展
PHP 版本5.5 Windows下 1.首先下载OCI8的扩展 http://pecl.php.net/package/o... 我这里下的版本是5.5 Thread Safe (TS) x86 版 ...
- 关于nginx反代jenkins报错 反向代理设置有误
官方文档地址: https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Nginx 直接解决的配置文件吧. 这是使用子域名,不使用 ...
- jquery.nicescroll.js Unable to preventDefault inside passive event listener due to target being treated as passive.
解决办法就是:https://github.com/bestjhh/Plugin 下载替换. 参考: https://github.com/bestjhh/Plugin https://blog.cs ...
- vue指令大全~~~
是的,这里有很全的vue指令使用~ 1.简单的vue应用 vue作为一个mvvm框架,想想为什么叫做mvvm? Model是负责数据的存储, View负责页面的展示 Model View 负责业务逻辑 ...