正则表达式的定义
正则表达式也是一种字面值,和数组一样。以//内是正则表达式。
正则表达式的方法
正则表达式也是一种object类的字面值,和对象一样。也有方法。正则表达式的方法有特殊的作用。
test方法
正则表达式的类有这个方法,改方法的参数是字符串,调用这个函数,最后返回值是true/false,是匹配正则表达式这个和被检测的字符串是否是一个类型。判别的时候会正则表达式每一个字符都会对应匹配的。
exec方法
该方法也是对参数进行匹配,但是返回的是匹配的一系列信息。以数组的形式返回一系列信息。index:5是键值对,如果找得到返回的是数组,没有返回的是null。
返回值如下:键值对也可以写在数组或者集合内。作为一种数据类型。
以上两个方法匹配时的规则
普通字符和元字符都是写在斜线内,整体代表正则表达式,但是匹配只从斜线内开始匹配。
1.普通字符
普通字符是只能匹配和本身一样的字符,例如所有的数字和字母,下划线等,我们日常的普通字符
2.元字符
有特殊的含义的字符,写一个这种字符能匹配多个普通字符,都算满足。多种格式的字符串都能匹配成功。
1)边界符
正则表达式匹配参数字符串得从那个地方开始匹配。
如果在斜线开头且只能在开头,写^表述^后面的字符和字符串第一个字符开始匹配,一个一个匹配。但是结尾没要求。如果不写边界符,匹配的时候只要满足无论是从那里开始。但是如果写了这两个符号必须从开头/结尾开始匹配,如果两个符号都写,证明字符串必须和内部格式一样。比如
/^嗨嗨$/.test('嗨嗨嗨')错的,只有'嗨嗨'才是对的。
2)量词
量词写的时候,是看前面的,匹配的时候前面字符
如a*匹配的时候字符串内有零或多次都能匹配成功。
3)字符类[]
[abc]匹配的时候这个一整个只匹配一个字符,但是匹配的时候内部都算匹配成功。
[]内可以写很多字符,但是只要是一个中括号,内部写再多都是匹配一个字符,这个字符是内部的就算匹配成功。但是中括号内可以写的格式可以是普通字符连在一起写,也可也用- ,比如a-z表述a到z的的字母。
[a-zA-Z]表示大小写的英文字母,如果中括号内以空格隔开,空格也是一个字符。匹配的时候空格也能匹配。多个空格也只是一个空格。-左右只能是连一起的都是大小写或者是数字。在中括号内些^表示的是非后面的这些,且只能写在中括号第一个否则表示的只是一个普通字符。
写上述的这些写在斜线内和写中括号一个匹配模式,匹配的时候和写那些匹配一样,当看到这些,就去匹配一个字符。
上面两个方法的参数可以不是字符类型,但是最后会转成字符类型。
3.修饰符
修饰符是写在正则表达式后面,会对正则表达式的匹配或者替换有影响。可以写在正则表达式后面表示的也是正则表达式的这个对象,也可也用来匹配。i写在正则表达式后面匹配的时候正则每一个字符匹配的时候大小写都可以进行匹配,g只对替换有效果,当写g的时候,替换的时候会替换全部,但是当不写这两个的正则表达式匹配的时候区分大小写,替换的时候也只替换第一个。
replace方法
字符串的该方法可以将输入的参数转成字符串类型,然后对这个字符串进行替换,返回值是最终的字符串。这个方法是字符串的方法,但是如果传参是正则表达式
比如'aaa'.replace(/[a-z]/,'哈')返回值('哈aa')会是替换后的。会将字符串内与正则表达式格式相同的第一个替换成第二个参数的字符串。
正则表达式内可以写|表示正则表达式匹配或者替换可以是|前后两种格式。
在家的第二天打卡,加油💪💪💪