正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是@技匠 整理的,在前端开发中经常使用到的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*)\/?>

可以节约很多代码的几个正则表达式相关推荐

  1. 【Java】在Eclipse中,很多代码的背景变成黄色、绿色或红色(已解决)

    不知按哪儿了,发现很多代码的背景变成黄色.绿色或红色,按以下三张图操作,就OK了.

  2. python使用正则表达式代码_python如何使用正则表达式

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...

  3. 突然讨厌做前端,讨厌代码_你讨厌正则表达式吗? 那么,我为您提供解决方案......

    突然讨厌做前端,讨厌代码 by Bukhari Muhammad 通过布哈里·穆罕默德(Bukhari Muhammad) 你讨厌正则表达式吗? 那么,我为您提供解决方案... (Do you hat ...

  4. python正则表达式代码_python的re正则表达式实例代码

    导读热词 本文研究的主要是python的re正则表达式的相关内容,具体如下. 概念:正则表达式(通项公式)是用来简洁表达一组字符串的表达式.优势是简洁,一行胜千言. 应用:字符串匹配. 实例代码: C ...

  5. RUN__IT # 一个简单的爬妹子代码送福利(正则表达式总结)

    先来个诱惑再看代码吧!再来复习下正则表达式吧! 代码很简单,若有建议请留言! 案例 import gevent from gevent import monkey import urllib.requ ...

  6. 电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码

    JavaScript中可以使用正则表达式var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;来判断是否为11位有效电话号码. JavaScript中可以使用正则表达式判断是否为1 ...

  7. IDA 函数出现翻出来漏掉很多代码 或者出现jumpout 的处理方法之一

    如果出现有漏掉一大截代码的情况,那么我们需要查看漏掉的那部分的代码的汇编 看看跳转过去的代码是否在伪代码里面有显示 如果没有显示 且出现这种情况 end of function chunk for x ...

  8. 程序猿小明需要为公司员工的个人信息录入编写前端代码,html +css +js正则表达式 实现个人信息登录表

    ~关注我  带你看更多精品技术和面试必备 程序猿小明需要为公司员工的个人信息录入编写前端代码,效果如下图 需求:要保证信息录入格式正确无遗漏(输入有误要给到对应提示) 我写的代码如下   :  可以借 ...

  9. 能让你少写1000行代码的20个正则表达式

    参考: (1).http://www.codeceo.com/article/20-regular-expressions.html

最新文章

  1. 关肇直 automation lingjunrenwu
  2. 无需服务器的个人博客 (2018.5.22更新)
  3. SDN/NFV 网络技术系列文章
  4. 怎么在android中定义泛型,android – 如何在GSON TypeToken类中使用自定义泛型?
  5. 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
  6. SCI期刊拒稿看看什么原因?
  7. python中的Lambda表达式/函数
  8. 为什么html中li浮动,相对定位下的绝对定位下的li为什么不能浮动??
  9. Go1.17 这个新特性竟是 6 年前提出来的
  10. 【元胞自动机】基于matlab保守策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1294期】
  11. 在vs里配置其他编译器
  12. 嵌入式linux字体库,嵌入式 初探freetype字体库
  13. java/php/net/python房产信息管理系统设计
  14. MySQL索引优化的几种方式
  15. Program Slicing
  16. VMware Explore 2022 China,赋能中国企业加速实现云智能
  17. 辛普森法 matlab,MATLAB辛普森法则
  18. 开关电源模块并联供电系统_开关电源中X电容与Y电容的作用
  19. 关于LCD_ShowString的顽固感叹号!
  20. 像《我是歌手》一样说我是程序员

热门文章

  1. TCP/IP / UDP 头
  2. mac 安装node_node 服务端部署
  3. 如何洞察行业中的应用场景?(下篇)
  4. 测试dali协议的软件,基于DALI协议的数字照明控制软件的研发
  5. mfc 窗体不可点击的原因_如何设计一个简单的Access登录窗体(2)
  6. 《Cloud Native Infrastructure》CHAPTER 7 (1)
  7. Codeforces div2 #499 B. Planning The Expedition 大水题
  8. [luogu 2324][SCOI 2005] 骑士精神 (A*算法)
  9. iptables下开放ftp连接端口
  10. linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)