最近做了一个项目的需求是这样的:首次登录需要修改密码,(原来密码是8位的数字),且密码的格式必须是大写字母开头,必须包含大小写字母和数字,长度是8-15位

javascript正则不怎么会,自我认为正则也是javascipt中比较难的一部分,常听别人说,遇到正则的问题,直接百度就行,可是我百度了很久,都没有这个要求,于是,就上B站看了向军老师的正则视频,因为时间紧任务重,就看了一下基础的,因为之前有学过正则,只是时间长了,就忘了,后来自己再通过百度,

这是我第一次写的正则, 但是有很多情况没有考虑到,比如这种

就匹配不上,这种是符合格式的,但是匹配不成功,后来又想了一种,是这样的,

 

{
    pattern: /^[A-Z]((?![^a-z]+$)(?!\D+$).{7,14}$)$/,
    message: '请输入以大写字母开头,长度至少是8-15位的数字和字母的新密码'
}

 目前还没有发现问题,也不知道匹配的对不对,这个也是自己在网上找了很几个案例,临时拼凑起来的,对于这个思路,我是看这个解答才模仿的来的,

下面的这个正则表示:8到15位字符,必须包含有字母和数字

谁能给我讲讲这个正则^(?![^a-zA-Z]+$)(?!\D+$).{8,15}$主要是?!的用法

这里使用到了正则的高级----零宽断言,

关于零宽断言,我比较推荐这两篇文章,

javascript 正则表达式-零宽断言

javascript正则--零宽断言--案例解析

一篇是解释基本概念,另一篇是根据解析一个案例,虽然我案例没看太懂哈。

另外B站向军老师的课程里面也有讲解,有时间跟着视频敲效果也挺好的,

为了节省时间,特意整理出来向军老师B站上面的笔记,

JS——正则表达式

还有这个正则表达式速查

javascript正则表达式速查

相信以后遇到正则问题,随时翻看一下能解决大部分问题,因为以上大部分是转载的,有侵权行为,请随时联系本人,速度删除。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐