自从实习开始,就开始按计划的读书学习了,但是直到这几天,还是感觉收效甚微,没有笔记的读书毫无感觉,也没有灵魂,所以在这里做个笔记吧,目前已经读到了第十章,就从这一章开始吧,之前的笔记我也会慢慢上传。
第十章讲的是正则,正则相当于一个作弊器,它可以匹配到基本任何需要的字符串,但是由于它鬼畜的写法和天文般的长度,一直不能入手。
首先,正则的标志在js里面,就是用“”/“”来开头和结尾,这是正则的标准写法。
正则里面也有转义字符,和java类似,部分还通用:\o NUL字符 \t制表 \n换行 \v垂直制表 \f 换页 \r回车
正则里的特殊符号,正则里面的特殊符号比较多,有的我没有接触过,因为我没有用到过太复杂的正则。。。首先是字符类匹配,最基础,也是我目前在工作环境中有用到的。比如/[abc]/ 表示匹配abc三个字符,/[a-z]/表示匹配小写字母从a-z,然后有一个^符号,这个表示排除吧,比如/[^abc]/就表示匹配除了abc三个字符以外的其他字符。然后字符类里也有几个转义:
\w 匹配任何ASCII码字符相当于/[a-zA-Z0-9]/
\W表示匹配除了ASCII之外的字符,相当于/[^a-zA_Z0-9]/,
\s 匹配Unicode空白符
\S 匹配非Unicode空白符。
\d 数字/[0-9]/
\D /[^0-9]/
然后是正则里面的重复,有时候我们要匹配身份证,如果没有重复的话,那就要/\d\d/一直放18位\d了,那样的话非常麻烦,这里也要注意一个[]内代表一位的匹配。换句话说,上面的/\d\d/也可以写成/[0-9][0-9]/。关于重复,有俩种方式,一种是+号,+号表示匹配前面的格式尽可能多,比如/\d+/,表示匹配数字,123456x,会一直匹配到x之前。{}设置会更加详细。
今天的笔记先到此,总体来说,正则是针对于字符串的匹配,公司安全学习的时候有提过,白名单验证和黑名单屏蔽的时候都可以使用正则,但是根据情况的不同,需要的正则式长度也不同。
开卷醍醐天降,释手犹有余香