正则表达式基础和示例

一、概述

正则表达式是对字符串操作的一种逻辑公示,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

二、正则表达式的用途

正则表达式有三个主要用途:

    模式验证:检测某个字符串是否符合规则,例如检测手机号、身份证号等等是否符合规范

    匹配读取:将目标字符串中满足规则的部分读取出来,例如将整段文本中的邮箱地址读取出来。

    匹配替换:将目标字符串中满足标准的部分替换为其他字符串,例如将整段文本中的“hello”替换成“haha”。

三、正则表达式的语法

3.1 创建正则表达式对象

对象形式:var reg = new RegExp("正则表达式") 当正则表达式中有"/"时使用这种形式。

直接量形式:var reg = /正则表达式/ 一般使用这种声明方式

3.3 正则表达式的匹配模式

3.3.1 全文查找

如果不使用g对正则表达式对象进行修饰,则使用正则表达式进行查找时,仅返回第一个匹配;使用g后,返回所有匹配。

.3.2 忽略大小写

3.3.3 模糊匹配和精确匹配
3.3.4 多行查找

不使用多行查找模式,目标字符串中不管有没有换行符都会被当做一行。

3.4 元字符

在正则表达式中被赋予特殊含义的字符,不能被直接当做普通字符使用。如果要匹配元字符本身,需要对元字符进行转义,转义的方式是在元字符前面加上“\”。

3.4.1 常用的元字符

代码 说明

. 匹配除换行字符以外的任意字符。

\w 匹配字母或数字或下划线等价于[a-zA-Z0-9_]

\W 匹配任何非单词字符。等价于[^a-zA-Z0-9_]

\s 匹配任意的空白符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]

\S 匹配任何非空白字符。等价于[^\f\n\r\t\v]

\d 匹配数字。等价于[0-9]

\D 匹配一个非数字字符。等价于[^0-9]

\b 匹配单词的开始或结束

^ 匹配字符串的开始,但在[]中使用表示取反

$ 匹配字符串的结束

3.5 字符集合

语法格式

示例

说明

[字符列表]

[abc]

目标字符串中任何一个字符出现在字符列表中就算匹配成功。

[^字符列表]

[^abc]

匹配字符列表中未包含的任意字符。

[字符范围]

[a-z]

匹配指定范围内的任意字符。

.6 出现次数

代码

说明

*

出现零次或多次

+

出现一次或多次

?

出现零次或一次

{n}

出现n次

{n,}

出现n次或多次

{n,m}

出现n到m次

3.7 在正则表达式中表达“或”

使用符号:“|”

3.8 常用正则表达式

常见的正则校验规则

  1.  校验手机号码(中国大陆)const regex = /^1[3456789]\d{9}$/;

2. 校验邮箱地址const regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

3. 校验身份证号码(中国大陆 )

const regex =

  /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/;

// 身份证号码为15位或18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

// const regex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

4. 校验密码强度const regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{6,20})$/;

5. 校验 URL 地址const regex = /^(http|https):\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/\S*)?$/;

6. 校验邮政编码(中国大陆)const regex = /^[1-9]\d{5}$/;

7. 校验 IP 地址(ipv4)const regex =

  /^([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])\.([01]?\d{1,2}|2[0-4]\d|25[0-5])$/;

8. 校验护照号码(中国大陆)const regex = /^[EeGg]\d{8}$/;

9. 校验港澳通行证号码const regex = /^[HMhm]\d{8}$/;

4,示例。

bugku  变量1

1.打开环境,审计代码,里面说用get传参的方式,而且后面所接内容只可以用任意字母,数字,下划线,以及汉字字符。

2.使用GLOBALS得到全部变量

原文链接:https://blog.csdn.net/HunterArley/article/details/128146718

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值