js密码强度正则表达式_正则表达式要怎么用

6cd321088c1eaa0dece70743ca87037c.gif

引言

正则表达式(Regular Expression,缩写regex)是进行字符串匹配操作的一种常用方式,也是一种功能极丰富的方式,在如今几乎所有的编程语言中都有相关的应用。除此之外,它在文本编辑器中也有着广泛应用。

正则这个名字初看会让人摸不着头脑,但其实它的含义不过是通过符号来表示具有一定规律的字符串而已。

以下将介绍一些常用的正则表达式及一些应用场景。本文只使用现成语句,不会过多介绍正则表达式的语法,关于其具体字符的含义,可以查询相关的工具网站。

应用

弹幕屏蔽词

许多弹幕网站都有着弹幕屏蔽规则。但似乎很多时候仅仅添加屏蔽词并不能很好地解决问题,这时候就轮到正则表达式出场了。(注:以下正则表达式使用正斜杠/包裹)

不想被前排弹幕刷屏?

正则可以满足你:

/.*前排?$/

/^\s(前|第)\s(\d+|(一|二|三|四|五|六|七|八|九|十).*)/

不想被大家的观看日期干扰?

也行:

/(\d+.)?\d+.\d+/

/(.+年)?.+月.+日?/

不想看到不同长度的2333?

当然也可以:

/^23*$/

注:\d匹配一个数字,\s匹配任意空白字符,?表示最小匹配,+表示匹配一个以上字符,*表示匹配零个以上字符,.匹配一个任意字符

但要怎么用呢,以bilibili为例,只要在屏蔽列表里添加以上内容就好啦。(箭头所示位置)

1b196c6bb5e36eaf67d3cea810963fb1.png

文档内容查询替换

对于纯文本文档,正则表达式是再好不过的查询替换工具,许多常用的文本/代码编辑器都支持通过正则表达式进行查找替换。

VS Code

以Visual Studio Code为例,按CTRL+F打开搜索框,

4ad612ad73a2bc8c16280271a7b8daaf.png

打开使用正则表达式的按钮就可以了。如果你了解什么是捕获组,那么在VS Code的替换中可以使用$n取得第n个捕获组。

Notepad++

如果你使用Notepad++,那也没有问题,同样的操作即可使用正则来查询替换。

f4a72f5ae487a72c46cf69d38258a977.png

CommandLine(VIM)

什么?你是命令行用户?那vim的正则表达式也不赖。

52e31efcff85fcd531fb81bb1ceb12d1.png

在vim中使用正则表达式只需要按/,然后输入要搜索的内容,不过要注意的一点是,表达式需要被包裹在\中,且元字符的表达方式也与常规方式有点不一样。

用正则表达式来校验输入

由于有着强大的匹配功能,正则表达式最常见的用处是做输入校验,遥想前段时间的bilibili源代码泄露事件,相关的代码就被解剖了一番。

8193a832bd4c3cdcd0de77dfd698de32.png

无论前端还是后端开发,通过正则进行输入校验提升用户体验或者以模式匹配来防止注入攻击都是常见的用法。

那么日常使用中有哪些常用的输入校验用的正则呢,以下是其中一些示例。

密码强度检验

长度不小于8的大小写字母与数字组合密码:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$

3792d45906eb2b20de854903754eaeed.png

Email地址

任意符合规范的Email地址:

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

50577b434c95083338c779de6a92372f.png

URL

http协议:

^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

任意协议:

[a-zA-z]+://[^\s]*

dc8933661b06e2b9ee153cbeb535f625.png

日期

如2019-1-1:

^\d{2,4}[-|.]\d{1,2}[-|.]\d{1,2}

e9e487ff92b2d38416d33bd5eae10623.png

手机号码

国内常用手机号码:

871c993dfd316455ea26959c2e47b79e.png

下方可复制正则表达式:

^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

630112960009587bc8caf6b21e0cf134.png

空白行

可用于删除空白行:

\n\s*

e689710f707ec0865b069fa8e46dbeea.png

HTML标签匹配

(部分)可用于爬虫或网页结构分析:

]*>.*?\1>|<.>

59b5bc15915c6de15dcc03ad1b8e7118.png 54764accc2003a5f30473661e495fc61.png

俗话说:正则写得好,代码写得少(并没有),有时候一行正则表达式能抵得上几十行的匹配用代码,甚至能完成一些本来很难实现的功能,可以说妙用无穷,它能怎么用,可以说没有一个定论,或许这只取决于你的创造力有多少。

END

639189f5f1e618eb2ad8c5a87a753acb.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值