可以节约很多代码的几个正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是@技匠 整理的,在前端开发中经常使用到的20个正则表达式。
正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = fieldValue.match(reg);
if(r==null)alert('Date format error!');
1 . 校验密码强度
密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{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位:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
18位:
^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$
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位小数。
^[0-9]+(.[0-9]{2})?$
8. 校验手机号
下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
9. 判断IE的版本
IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。
^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$
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 正则语句。
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
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
有时需要抽取网页中的颜色代码,可以使用下面的表达式。
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
16. 提取网页图片
假若你想提取网页中所有图片信息,可以利用下面的表达式。
\< *[img][^\\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)
17. 提取页面超链接
提取html中的超链接。
(<a\s*(?!.*\brel=)[^>]*)(href="https?:\/\/)((?!(?:(?:www\.)?'.implode('|(?:www\.)?', $follow_list).'))[^"]+)"((?!.*\brel=)[^>]*)(?:[^>]*)>
18. 查找CSS属性
通过下面的表达式,可以搜索到相匹配的CSS属性。
^\s*[a-zA-Z\-]+\s*[:]{1}\s[a-zA-Z0-9\s.#]+[;]{1}
19. 抽取注释
如果你需要移除HMTL中的注释,可以使用如下的表达式。
<!--(.*?)-->
20. 匹配HTML标签
通过下面的表达式可以匹配出HTML中的标签属性。
<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[\^'">\s]+))?)+\s*|\s*)\/?>
可以节约很多代码的几个正则表达式相关推荐
- 【Java】在Eclipse中,很多代码的背景变成黄色、绿色或红色(已解决)
不知按哪儿了,发现很多代码的背景变成黄色.绿色或红色,按以下三张图操作,就OK了.
- python使用正则表达式代码_python如何使用正则表达式
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...
- 突然讨厌做前端,讨厌代码_你讨厌正则表达式吗? 那么,我为您提供解决方案......
突然讨厌做前端,讨厌代码 by Bukhari Muhammad 通过布哈里·穆罕默德(Bukhari Muhammad) 你讨厌正则表达式吗? 那么,我为您提供解决方案... (Do you hat ...
- python正则表达式代码_python的re正则表达式实例代码
导读热词 本文研究的主要是python的re正则表达式的相关内容,具体如下. 概念:正则表达式(通项公式)是用来简洁表达一组字符串的表达式.优势是简洁,一行胜千言. 应用:字符串匹配. 实例代码: C ...
- RUN__IT # 一个简单的爬妹子代码送福利(正则表达式总结)
先来个诱惑再看代码吧!再来复习下正则表达式吧! 代码很简单,若有建议请留言! 案例 import gevent from gevent import monkey import urllib.requ ...
- 电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
JavaScript中可以使用正则表达式var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;来判断是否为11位有效电话号码. JavaScript中可以使用正则表达式判断是否为1 ...
- IDA 函数出现翻出来漏掉很多代码 或者出现jumpout 的处理方法之一
如果出现有漏掉一大截代码的情况,那么我们需要查看漏掉的那部分的代码的汇编 看看跳转过去的代码是否在伪代码里面有显示 如果没有显示 且出现这种情况 end of function chunk for x ...
- 程序猿小明需要为公司员工的个人信息录入编写前端代码,html +css +js正则表达式 实现个人信息登录表
~关注我 带你看更多精品技术和面试必备 程序猿小明需要为公司员工的个人信息录入编写前端代码,效果如下图 需求:要保证信息录入格式正确无遗漏(输入有误要给到对应提示) 我写的代码如下 : 可以借 ...
- 能让你少写1000行代码的20个正则表达式
参考: (1).http://www.codeceo.com/article/20-regular-expressions.html
最新文章
- 关肇直 automation lingjunrenwu
- 无需服务器的个人博客 (2018.5.22更新)
- SDN/NFV 网络技术系列文章
- 怎么在android中定义泛型,android – 如何在GSON TypeToken类中使用自定义泛型?
- 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
- SCI期刊拒稿看看什么原因?
- python中的Lambda表达式/函数
- 为什么html中li浮动,相对定位下的绝对定位下的li为什么不能浮动??
- Go1.17 这个新特性竟是 6 年前提出来的
- 【元胞自动机】基于matlab保守策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1294期】
- 在vs里配置其他编译器
- 嵌入式linux字体库,嵌入式 初探freetype字体库
- java/php/net/python房产信息管理系统设计
- MySQL索引优化的几种方式
- Program Slicing
- VMware Explore 2022 China,赋能中国企业加速实现云智能
- 辛普森法 matlab,MATLAB辛普森法则
- 开关电源模块并联供电系统_开关电源中X电容与Y电容的作用
- 关于LCD_ShowString的顽固感叹号!
- 像《我是歌手》一样说我是程序员
热门文章
- TCP/IP / UDP 头
- mac 安装node_node 服务端部署
- 如何洞察行业中的应用场景?(下篇)
- 测试dali协议的软件,基于DALI协议的数字照明控制软件的研发
- mfc 窗体不可点击的原因_如何设计一个简单的Access登录窗体(2)
- 《Cloud Native Infrastructure》CHAPTER 7 (1)
- Codeforces div2 #499 B. Planning The Expedition 大水题
- [luogu 2324][SCOI 2005] 骑士精神 (A*算法)
- iptables下开放ftp连接端口
- linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)