20个正则表达式必知(前端开发)

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

列目录时, dir .txt或ls .txt中的.txt就不是一个正则表达式,因为这里与正则式的*的含义是不同的。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。

正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的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!');
下面是在前端开发中经常使用到的20个正则表达式:

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. 文件路径及扩展名校验

验证文件路径和扩展名

^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$

15. 提取Color Hex Codes

有时需要抽取网页中的颜色代码,可以使用下面的表达式。

\\#([a-fA-F]|[0-9]){3,6}

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*)/?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库(8):获得数据库和表的信息

目录 &#xff08;1&#xff09;查看有哪些数据库 &#xff08;2&#xff09;选择数据库 &#xff08;3&#xff09;查看该数据库中有哪些表 &#xff08;4&#xff09;查看表结构 &#xff08;1&#xff09;查看有哪些数据库 show databases; 返回&#xff1a; &#xf…

energy in transition课文翻译_备战四六 | 四六级翻译常考固定表达,速记!

80个固定表达四六级翻译内容一般涉及&#xff1a;中国传统文化、旅游活动、历史事件、经济政治、社会发展等相关的词汇。今天和大家分享四六级考试中常考的固定表达。1. 随着经济的繁荣 with the booming of the economy2. 随着人民生活水平的显著提高 with the remarkable imp…

正则表达式语法详解

正则表达式的发展 1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上&#xff0c;发表了一篇标题为"神经网事件的表示法"的论文&#xff0c;引入了正则表达式的概念。正则表达式就是用来描述他称为"正则集的代数"的表达式&…

mysql数据库(9):常用查询的例子

目录 &#xff08;1&#xff09;可以使用以下语句创建示例表 &#xff08;2&#xff09;执行语句后&#xff0c;查看表所包含内容 &#xff08;3&#xff09;列的最大值 &#xff08;4&#xff09;拥有某个列的最大值的行 方法一&#xff1a; 方法二&#xff1a; &#x…

树莓派 小屏幕_树莓派学习手动积累(1)

树莓派4B到手&#xff0c;满怀激动地拆开包装&#xff0c;准备大展拳脚。Raspberry Pi(中文名为“树莓派”,简写为RPi&#xff0c;(或者RasPi / RPI)是为学习计算机编程教育而设计)&#xff0c;只有信用卡大小的微型电脑&#xff0c;其系统基于Linux。随着Windows 10 IoT的发布…

正则表达式的匹配规则

字面量字符和元字符 大部分字符在正则表达式中&#xff0c;就是字面的含义&#xff0c;比如 /a/ 匹配 a&#xff0c; /b/ 匹配b。这种只表示它字面量含义的被称为字面量字符。 除了字面量&#xff0c;还有一些字符有特殊含义&#xff0c;不代表字面意思&#xff0c;被称为元字…

mysql数据库(10):数据 备份

目录 &#xff08;1&#xff09;备份某个数据库下的固定某些表 &#xff08;2&#xff09;对单个或多个库进行完全备份 &#xff08;3&#xff09;对所有库进行完全备份&#xff08;建立all.sql文件) &#xff08;1&#xff09;备份某个数据库下的固定某些表 目标&#xff…

华为5720设置静态路由不通_静态路由理论知识详解

一、简介静态路由是一种需要管理员手工配置的特殊路由。静态路由在不同网络环境中有不同的目的&#xff1a;当网络结构比较简单时&#xff0c;只需配置静态路由就可以使网络正常工作。在复杂网络环境中&#xff0c;配置静态路由可以改进网络的性能&#xff0c;并可为重要的应用…

正则表达式的运算符优先级

正则表达式从左到右进行计算&#xff0c;并遵循优先级顺序&#xff0c;这与算术表达式非常类似。 相同优先级的从左到右进行运算&#xff0c;不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序&#xff1a; 运算符 描述 \ 转义符 (), (?:), …

mysql数据库(11):恢复数据

目录 (1)先登录 (2)查看数据库有哪些 (3)新建一个空表text (4)删除数据库yang (5)恢复数据库 (1)先登录 mysql -h localhost -u root -p (2)查看数据库有哪些 show databases; 返回&#xff1a; (3)新建一个空表text create database text; 返回&#xff1a; (4)删除…

c语言sin程序怎么写_用数控铣床加工六芒星,程序应该怎么写?

就用D50MM圆柱毛丕&#xff0c;D10的铣刀粗略写一个&#xff0c;仅代表个人观点哈~主程序:O0000G17G40G49G80G90G54G0G90G54X27.Y-12.5Z50.S2000M3Z3.G1Z0.F300M98P50001G0Z50.M05M30子程序&#xff1a;O0001G91G1Z-2.F300G90G41D1G1X21.65Y-12.50F300G1X7.22X0.Y-25.X-7.22Y-1…

Java数字格式化

数字的格式在解决实际问题时使用非常普遍&#xff0c;这时可以使用 DedmalFormat 类对结果进行格式化处理。例如&#xff0c;将小数位统一成 2 位&#xff0c;不足 2 位的以 0 补齐。 DecimalFormat 是 NumberFormat 的一个子类&#xff0c;用于格式化十进制数字。DecimalForm…

mysql查询三个月内的_如何在三个月内自学攻克雅思6.5分?

新西兰留学移民经历分享-进行时(3)编者按&#xff1a;选新西兰留学前&#xff0c;看过很多博主的帖子&#xff0c;让一个从没到访过新西兰的我有了多一些了解和规划。现在也希望能把自己的经历分享给大家&#xff0c;同时作为人生中比较大的一个决定&#xff0c;想用文字记录全…

万字mysql数据库图文教程

目录 一、前言 ⭐四万字入门教程⭐ 二、连接与断开服务器 三、输入与查询 四、使用数据库 五、创建并选择数据库 六、创建表 七、将数据填入表中 八、从表中检索信息 九、获得数据库和表中信息 十、常用查询例子 十一、数据库备份 十二、数据库恢复 一、前言 本篇…

Java大数字运算

在 Java 中提供了用于大数字运算的类&#xff0c;即 java.math.BigInteger 类和 java.math.BigDecimal 类。这两个类用于高精度计算&#xff0c;其中 BigInteger 类是针对整型大数字的处理类&#xff0c;而 BigDecimal 类是针对大小数的处理类。 BigInteger 类 如果要存储比 …

MySQL从入门到精通详细教程

目录 前言 ⭐集合4万字基础教程⭐ 一、SQL详细教程 二.mysql入门详细教程 ⭐python mysql 图文教程⭐ 一、MySQL和python MySQL安装教程 二、Python MySQL入门连接 三、Python MySQL创建表 四、Python MySQL插入表 五、Python MySQL选择 六、Python MySQL查询在哪里…

batchnorm and relu_日本AND荷重传感器

【广州兰瑟】对射式检测方式的发和接相互对射安装&#xff0c;日本AND荷重传感器的光直接对准。当被测物挡住光束时&#xff0c;日本AND荷重传感器传感器输出产生变化以指示被测物被检测到。式是早使用的一种光电检测模式。谢谢如有传感器/仪表/模块/放大器/接线盒...咨询可搜索…

Java时间日期的处理

在 Java 中获取当前时间&#xff0c;可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中&#xff0c;Date 类主要封装了系统的日期和时间的信息&#xff0c;Calendar 类则会根据系统的日历来解释 Date 对象。 Date 类 Date 类表示系统特定的时间戳&#xff0c;可…

R语言基础入门(10)之矩阵和数组

目录 1.矩阵 创建矩阵 查看矩阵的行与列数 转置 2.矩阵子集 3.矩阵行列命名 4.命名后取子集 5.逻辑下标取子集 6.正整数向量的矩阵取子集 7.返回对角线向量 8.创建单位矩阵 9.cbind() 和 rbind() 函数 10. 矩阵运算 10.1 四则运算 10.2 矩阵乘法 10.3 向量与…

foxit phantom pdf 7.3_Jpeg to Pdf Converter 3000批量将图片转为PDF的方法

Jpeg to Pdf Converter 3000是一款非常优秀的图片转PDF软件&#xff0c;该软件界面清爽美观&#xff0c;用户使用该软件&#xff0c;可以快速的将JPG图片转换为PDF文件&#xff0c;而且转换的质量非常高。我们在日常的办公生活中&#xff0c;很多时候为了使图片在传输过程中不被…