正则表达式学习笔记
正则表达式简介 基本的符号: ?:表示当前?号前面的字符出现0次或者1次的通配符; *:表示的是0个或者多个字符的通配符; +:表示当前+号前的字符,出现一次或者多次的通配符; ^:表示输入字符串的开始位置; $:表示输入字符串的结束位置; .:特殊字符"." (点,句号)在正则表达式中用来表示除了"新行"之外的所有字符; 字符匹配规则说明: 1. 特殊字符*与{0,}是相等的,它们都代表着0 个或多个前面的内容。最后,字符+{1,255);">是相等的,表示1 个或多个前面的内容。 2.前面曾经提到^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用^是,它表示"非"或"排除"的意思,常常用来剔除某个字符。还用前面的例子,我们要求第一个字符不能是数字: ^[^0-9][]$ 3. 一个单词有若干个字母组成,一组数字有若干个单数组成。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数。其中一个数字{x}的意思是前面的字符或字符簇只出现x次;一个数字加逗号{x,51);font-size:13px;border:0px;">前面的内容出现x或更多的次数;两个数字用逗号分隔的数字表示前面的内容至少出现x次,但不超过y次。 4. 若要在中括号表达式中包括连字符,请采用下列方法之一:
普通字符、元字符: 普通字符:普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。 <非打印字符、特殊字符、限定符、定位符> ----------------------------------------------------------------------------------------------------------------------- 正向反向预搜索、回溯非回溯以及贪婪与非贪婪模式 可参考链接:https://www.cnblogs.com/TanSea/p/6924177.html ----------------------------------------------------------------------------------------------------------------------- 常用的正则表达式(摘自https://c.runoob.com/front-end/854): 一、校验数字的表达式
二、校验字符的表达式
三、特殊需求表达式
----------------------------------------------------------------------------------------------------------------------- 下面是技匠整理的,在前端开发中经常使用到的20个正则表达式。 (转自:https://www.cnblogs.com/chengleijiang/p/6026488.html) 1 . 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
2. 校验中文字符串仅能是中文。 ^[u4e00-u9fa5]{0,}$
3. 由数字、26个英文字母或下划线组成的字符串^w+$
4. 校验E-Mail 地址同密码一样,下面是E-mail地址合规性的正则检查语句。 [w!#$%&'*+/=?^_`{|}~-]+(?:.[w!#$%&'*+/=?^_`{|}~-]+)*@(?:[w](?:[w-]*[w])?.)+[w](?:[w-]*[w])?
5. 校验身份证号码下面是身份证号码的正则校验。15 或 18位。 15位:
18位:
6. 校验日期“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
7. 校验金额金额校验,精确到2位小数。
8. 校验手机号下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
9. 判断IE的版本IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。
10. 校验IP-v4地址IP4 正则语句。 b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b
11. 校验IP-v6地址IP6 正则语句。
12. 检查URL的前缀应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。 if (!s.match(/^[a-zA-Z]+:///)) { s = 'http://' + s; }
13. 提取URL链接下面的这个表达式可以筛选出一段文本中的URL。 ^(f|ht){1}(tp|tps)://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
14. 文件路径及扩展名校验验证windows下文件路径和扩展名(下面的例子中为.txt文件) ^([a-zA-Z]:|)([^]+)*[^/:*?"<>|]+.txt(l)?$
15. 提取Color Hex Codes有时需要抽取网页中的颜色代码,可以使用下面的表达式。
16. 提取网页图片假若你想提取网页中所有图片信息,可以利用下面的表达式。 < *[img][^>]*[src] *= *["']{0,1}([^"' >]*)
17. 提取页面超链接提取html中的超链接。 (<as*(?!.*brel=)[^>]*)(href="https?://)((?!(?:(?:www.)?'.implode('|(?:www.)?',$follow_list).'))[^"]+)"((?!.*brel=)[^>]*)(?:[^>]*)>
18. 查找CSS属性通过下面的表达式,可以搜索到相匹配的CSS属性。 ^s*[a-zA-Z-]+s*[:]{1}s[a-zA-Z0-9s.#]+[;]{1}
19. 抽取注释如果你需要移除HMTL中的注释,可以使用如下的表达式。 <!--(.*?)-->
20. 匹配HTML标签通过下面的表达式可以匹配出HTML中的标签属性。 </?w+((s+w+(s*=s*(?:".*?"|'.*?'|[^'">s]+))?)+s*|s*)/?>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |