不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻。
Javascript正则表达式 进入全屏
line

有多位FeHelper的用户都提出,希望在FeHelper中能增加一个正则表达式的及时测试工具,由于平时项目紧张,一直没空弄,趁这个周末,把正则工具实现了,并加入到FeHelper中。考虑到大家在使用正则的过程中可能对Js正则的语法记得不太牢,顺便也整理了一下,列在这里。

另外,正则工具中也整理了一些常用的“正则表达式”实例,用户可酌情选择使用。具体的,工具中见!

一、元字符

元字符
对应说明
.匹配除换行符之外的任意字符
\w
匹配字母数字下划线,等同于:[a-zA-Z0-9_]
\s
匹配任意空白符
\d匹配数字,等同于[0-9]
\b匹配单词边界
|或匹配,如 /x|y/ 正则可匹配x或y两个字符
^匹配字符串的开始
$匹配字符串的结束

二、反义字符

反义字符
对应说明
[^x]匹配除“x”之外的所有字符,其中“x”可以为任意字符
[^xyz]同上,匹配除“x、y、z”之外的任意字符
\W匹配除了字母、数字、下划线之外的所有字符,等同于:[^\w]
\S匹配除空白符之外的任意字符,等同于:[^\s]
\B匹配不是单词边界的字符,等同于:[^\b]
\D匹配不是数字的所有字符,等同于:[^\d]

三、转义字符

转义字符
对应说明
\xnn匹配十六进制数
\f匹配换页符,等同于:\x0c
\n匹配换行符,等同于:\x0a
\r匹配回车符,等同于:\x0d
\t匹配水平制表符,等同于:\x09
\v
匹配垂直制表符,等同于:\x0b
\unnnn匹配Unicode字符,如:\u00A0

四、重复匹配

匹配字符
对应说明
*
重复出现零次或多次
+重复出现一次或多次
重复出现零次或一次
{n}重复出现n次
{n,}至少重复出现n次
{m,n}重复重现m到n次,其中,m<n

五、分组/捕获

分组字符
对应说明
(exp)用小圆括号进行分组,如日期中年月日的分组:/(\d{5})-(\d{1,2})-(\d{1,2})/
每个分组将产生分组号,从第一个括号开始,可以使用\n的形式在正则中使用分组号,
如匹配成对出现的HTML标签,可以写成:/<(\w+)><\/\1>/
(?:exp)匹配exp正则,但不产生分组号
exp1(?=exp2)前瞻断言,匹配exp1,但后面必须是exp2
如匹配名字叫xianlie,但不姓zhao的人:/zhao(?=xianlie)/
exp1(?!=exp2)后瞻断言,匹配exp1,但后面不能是exp2
如匹配姓zhao,但名字不叫xianlie的人:/zhao(?!xianlie)/

六、贪婪与惰性

相关字符
对应说明
*?
重复任意次,但尽可能少的重复
+?重复一次或多次,但尽可能少的重复
??重复零次或一次,但尽可能少的重复
{m,n}?重复m到n次,但尽可能少的重复
{n,}?重复n次以上,但尽可能少的重复
{n}?
重复n次,但尽可能少的重复

七、修饰符

修饰符
对应说明
i
ignoreCase的缩写,表示忽略字母的大小写
m

multiline的缩写,更改^和$的含义,使它们分别在任意一行的行首和行尾匹配

,而不仅仅在整个字符串的开头和结尾匹配。

(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)

gglobal的缩写,进行全局匹配,即对字符串进行全文匹配,直到字符串遍历结束
趣店(原趣分期)技术学院
重点关注技术架构、服务化、优秀工具、自动化平台、开发全流程一体化解决方案、新人培养、工程师进阶之道等方面
这里环境优雅、氛围年轻、主要是福利还多,还等什么?我们敞开技术的大门,欢迎各种工程师加入!

评论区域

line
  • 5 2018-06-05 15:49:44 回复
    1
  • fridolph 2018-05-31 20:59:01 回复
    辛苦了,超赞!非常好用的插件。希望继续给力更新~ 
  • idsbllp 2018-05-14 14:30:24 回复
    匹配HTML标签出错了,试试下面这个
    
    /<(\S*?) [^>]*>.*?<\/\1>|<.*?\/>/gm
  • ado 2018-04-23 14:59:11 回复
    /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
    你这个email正则有问题吧,邮箱不能以数字开头
  • 欧阳筱苒 2018-03-15 19:46:57 回复
    chrome-extension://pkgccpejnmalmdinmhkkfafefagiiiad/template/fehelper_regexp.html
    日期匹配:/^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/
    应该不可写:2999-19-39,月份最大12,日最大31
  • azc 2018-03-02 14:23:52 回复
    娃大王
  • 123456 2018-01-31 11:33:29 回复
    请问有木有匹配base64的正则呢???
  • luren 2018-01-26 04:26:11 回复
    有bug,/^\s/ 居然找不到空格开始的内容
  • hell 2017-09-22 11:29:52 回复
    好工具 积极向上的公司赞一个
  • bian 2017-08-09 01:55:25 回复
    回复 bian : 匹配结果
    bian said:
    很不错的工具!建议可不可以把匹配工具移到文本内容的前面?一般待匹配的文本较长,这样在编辑正则的时候需要不停地翻到页面底部看结果,好不方便。谢谢!
  • bian 2017-08-09 01:54:46 回复
    很不错的工具!建议可不可以把匹配工具移到文本内容的前面?一般待匹配的文本较长,这样在编辑正则的时候需要不停地翻到页面底部看结果,好不方便。谢谢!
  • reamd 2017-04-27 16:02:46 回复
    五、分组/捕获
    中第五行第一列exp1(?!=exp2)应为exp1(?!exp2)吧
  • reamd 2016-11-01 14:22:36 回复
    五、分组/捕获 如匹配名字叫xianlie,但不姓zhao的人:/zhao(?=xianlie)/这句话应为
    如匹配名字叫xianlie,但姓zhao的人:/zhao(?=xianlie)/吧
  • 90Arther 2016-08-04 11:46:31 回复
    每次都是三分钟学完,一分钟忘记,这种不语义的东西,想想应该有速记口诀,搜了一下,蓝学网总结得不错,分享一下:http://www.ablanxue.com/shtml/201406/22282_1.shtml
  • iTanken 2016-06-30 20:19:39 回复
    给力
  • riskers 2016-02-17 17:01:34 回复
    good~~
  • Alien 2015-12-26 17:01:16 回复
    回复 iijjll : 感兴趣,可加入
    iijjll said:
    FE good~
  • iijjll 2015-12-07 11:37:38 回复
    FE good~
  • icewater 2014-07-09 11:53:56 回复
    FE
    Very very cool!
    
  • tedyhy 2014-05-21 10:38:09 回复
    总结的很好,受益,thx :)
  • 还有2条较早的评论...