之前列举了部分常用的正则表达式,今天我们开始讲一下正则表达式中规则,咱们在这里也不是从基础知识开始一点一点讲,咱们通过实例来一点一点解析讲解这样我感觉更能让同学们理解。
^\d+$表达式
这个里面有几个知识点,
1、符号 ^ 表示的是表达式的首个字符串,符号 $ 表示表达式结束。加上有这两个符号那么只有整串字符必须完全跟表达式匹配才能返回 true。如果没有这两个符号那么只要整串字符中只要有字符串符合表达式就会返回 true。
2、\d表示的是数字 所以\d+表示的是以为或多位的数字组合。另外再多讲一个。
\w:表示的是字母,数字或下划线字符。
所以咱们最后的结果就是只能是“纯数字组合”的正则表达式。那么1234是符合的 123a是不符合的
如果是\d+ 那么刚才的两个字符串就是都符合的
ab*、ab+、ab?几个的区别
这几个表达式里面涉及到'*'、'+'、'?'这三个符号,它们分别表示字符串里面“没有或更多”,“一次或更多”还有“没有或一次”。
1、ab*:表示字符串中有一个a而后面必须紧跟着零个或多个b。所以像"a"、"ab"、"abb"这几个就都符合这个表达式。
2、ab+:表示字符串中有一个a而后面必须紧跟着至少一个或者多个b。所以像"ab"、"abb"这几个就都符合这个表达式;而"a"就不符合这个表达式了。
3、ab?:表示字符串中一个a后面必须紧跟着零个或者一个b。所以像"a"、"ab"这几个就都符合这个表达式;而"abb"就不符合这个表达式了。
ab{2}、ab{2,}、ab{3,5}几个之间的区别
1、ab{2}:表示字符串中有一个a而后面必须紧跟着2个b。所以"abb"只有符合这个表达式。
2、ab{2,}:表示字符串中有一个a而后面必须紧跟着2个或者更多的b。所以"abb"、"abbb"、"abbbb"这几个就都符合这个表达式。
3、ab{3,5}:表示字符串中有一个a而后面必须紧跟着3到5个b。所以"abbb"、"abbbb"、"abbbbb"只有这几个才符合这个表达式。
所有从这几个里面我们可以看出来{m,n}表示的是字符数量要在m-n个之间。
a.[0-9]、^.{3}$表达式
这两个表达式里面有几个点
1、.符号表示的是任意字符,所以a.表示的就是a后面紧接着跟着一个任意字符“ab”,“a1”都符合
2、[0-9]表示是0-9之间的数字所以a.[0-9]表示的是a后面紧接着跟着一个任意字符后面再跟上一个0-9之间的数字,所以ab1、a11这类的字符串都符合这个正则表达式。
^.{3}$根据之前和这个讲的表示的是只有任意三个字符的字符串。
[ab]、[a-z]、[0-9]表达式
1、[ab]:表示字符串有一个"a"或一个"b"。
2、[a-z]:表示字符串有从"a"到"z"之间的某一个字符。
3、[0-9]:表示字符串有从"0"到"9"之间的某一个字符。
总结
讲到这里我们可以根据前面介绍的在添加几个我们常用的正则表达式大家也可以自己根据上面讲的自己写几个表达式:
1、只能输入6-8位以字母开头的字符串。
^[a-zA-Z]{6,8}$
2、只能输入6-10个字母、数字、下划线的字符串。
^(\w){6,10}$
3、校验URL 以http开头后面带或者不带s,然后后面跟//在后面带1到n个字符的字符串
^http[s]{0,1}:\/\/.{1,n}
这个里面我们看到\/里面的“\”其实是转义字符,“\/\/”表示的就是“//”。