正则表达式 都别吵!我是帅的代表!
欢迎你回来再看一遍~~
作为小白的我在学习前端过程中,难免会碰到正则表达式,那么什么什么正则
嘞?通俗解释来讲,它是可以用来从文本中找出满足你想要的格式的句子
。
比如,我想在下面一串数字中找出能被二整除的数:
1 2 3 4 5 6 9 7 8 0
那么,我们可以很清楚的知道了0、2、4、6、8就是的。
再比如,我们想设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑。那么在通常的前端input中,会把value值做字符匹配,但是如果我们用javascript
来判断,则需要写相对复杂的代码。
因此,**正则表达式(Regular Expression ,下文简称”正则“)**就出现了。这里就不在去赘述其起源,感兴趣的话大家可以去点我百度。
正则格式 帅的标准由我说的算!
我们回到之前那个问题:设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符限制字符,并且需要限制用户名字符数。利用正则我们可以这样写:
^[a-z0-9_-]{
3,15}$
其中,^
为正则开始符号,在中括号[]
里的则表示匹配规则,例如这里表示为小写字母a到z
和数字0到9
以及下划线_
和连字符-
。在大括号{}
里的则表示为字符长度为3到15个
。最后$
为结束符号,表示正则终止。
上面这一条是基本的正则。它可以接受 john_doe
、jo-hn_doe
、john12_as
。但不匹配Jo
,因为它包含了大写的字母,而且太短了。
正则元字符 帅到五官朝我看!
是的,正如四则运算
中的加、减、乘、除。正则也有一套自己的运算符,我们可以叫他元字符
。元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。常用的一些元字符有这些:
元字符 | 描述 |
---|---|
. | 句号匹配任意单个字符,除了换行符。 |
[ ] | 字符种类。匹配方括号内的任意字符。 |
[^ ] | 否定的字符种类。匹配除了方括号里的任意字符。 |
* | 匹配>=0 个重复的在*号之前的字符。 |
+ | 匹配>=1 个重复的在+号之前的字符。 |
? | 标记在?之前的字符为可选字符。 |
{n,m} | 匹配num 个大括号之前的字符或字符集 ,这里(n <=num <= m)。 |
(xyz) | 字符集,匹配与xyz 完全相等的字符串。 |
| | 或运算符,匹配该符号前或后的字符。 |
\ | 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ | |
^ | 从开始行开始匹配。 |
$ | 从末端开始匹配。 |
为了更好的使用这些元字符
,我们一起来来分析分析帅帅的五官😀。
.
字符
.
是元字符中最简单的例子。.
匹配任意单个字符,但不匹配换行符。例如,表达式.ar
匹配一个任意字符,它后面跟着是a
和r
的字符串。 点击我进行在线练习