最近学到了JavaScript这个项目,对其中的正则表达式挺感兴趣,觉得这个东西不难,而且功能很强大。
什么是正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”就是用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到两个目的:
1.给定的字符串是否符合正则表达式的过滤逻辑。
2.可以通过正则表达式,从字符串中获取我们想要的特定部分。
特点
1.灵活性、逻辑性和功能性非常强。
2.可以迅速的用很简单的方式达到字符串的复杂控制。
在这个项目中,主要向我们介绍了一些比较简单的,常用的正则表达式,完整的正则表达式中有很大一部分是非常难懂的。
下面就说一下视频中介绍的一些简单的正则表达式的语法吧。
首先,有两个特殊符号^和$。^表示一个字符串的开始、$表示一个字符串的结束。
“^as”表示以“as”开始的字符串,比如“asd”、“asdf”等等。
“as$”表示以“as”结尾的字符串,比如“qas”、“qqas”等等。
“^as$”表示开始和结尾都是“as”,那么只有“as”。
“as”什么都不加的“as”,表示任何包含“as”的字符串。
然后是*、+、?这三个符号,表示字符重复出现的次数。
“as*”表示一个字符串有一个a后面有0个或许多个s。
“as+”表示一个字符串有一个a后面有至少一个s。
“as?”表示一个字符串有一个a后面有0个或1个s。
还有另一种表示重复的方式,就是用{}括起来数字,表示重复的次数。
“as{2}”表示一个字符串有一个a后面有两个s("ass")。
“as{2,}”表示一个字符串有一个a后面有至少两个s。
“as{2,5}”表示一个字符串有一个a后面有3-5个s。
"^[0-9]*[1-9][0-9]*$" //正整数
/^[0-9]{1,20}$/ 校验是否全由数字组成
[0-9] 表示要求字符范围在0-9之间
"^[a-zA-Z]":表示一个以字母开头的字符串;
"[0-9]%":表示一个百分号前有一位的数字;
"[0-9]%":表示一个百分号前有一位的数字;
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
校验URL:
/^http[s]{0,1}:\/\/.+$/
/^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
还有很多的内容值得我们去深入的了解,运用好了正则表达式会帮助我们减轻很多需要在代码上进行的工作,很有帮助。