Web APIs 正则表示式

正则表达式:是对字符串进行匹配运算的内置对象

表达式: 运算的

正则表达式:对字符串进行匹配运算

正则表达式作用:格式校验

手机号格式,验证码格式,账号密码,邮箱格式

正则表示式语法:

(1)创建正则对象:let reg = new RegExp(‘正则表达式’)

         简写:const 变量名 = /表达式/

         比如:const  reg = /前端/

(2)调用对象的 test()方法 语法:reg.text('字符串')

         判断是否有符合规则的字符串: 变量名.test(被检测的字符串)

        true:校验通过 false:校验不通过

js中几乎所有的对象都是new创建的,其中有三个内置对象有简写语法

new Array() 简写 []

new object() 简写 {}

new Date() 简写

new RegExp() 简写 /正则表达式/

正则表达式语法由两部分组成 /正则表达式/

1.原义文本字符 : 字符串本身的含义

* PS : 别多想,写什么就是什么。想的越多,错的越离谱

例子:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

2.元字符 : 改变了字符串本身的含义, 类似于js中的关键字

[ ] {} () . \ + ? * ^ $ |

[ ] : 字符类

1. /abc/ : 原义文本字符。 检测字符串有没有 abc

2. /[abc]/ : 字符类。 将a 或 b 或 c归为一类,满足任意一个即可.

说人话: 检测字符串中有没有 a 或 b 或 c

3. /[^abc]/ : 反向类。 将不是a 或 不是b 或 不是c的归为一类,满足任意一个即可。

说人话: 检测字符串中有没有除 abc之外的任意字符

例子:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

 1.范围类

/[0-9]/ : 检测有没有数字

/[a-z]/ : 检测有没有小写字母

/[A-Z]/ : 检测有没有大写字母

2.范围类特点

2.1 范围类是一个闭区间 : /[5-8]/ : 包含5,也包含8

2.2 范围类可以连写: /[0-9a-zA-Z]/ : 大小写字母+数字

2.3 范围类一定是 右边 > 左边 (依据ASCII码)

      [5-8] : 正确

      [8-5] : 报错

例子:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

预定义类: 正则表达式提供好的用来匹配常见的字符类 

预定义类

等价类

含义.

.

[^\r\n]

除了回车和换行之外的所有字符

\d

[0-9]

数字字符

\D

[^0-9]

非数字字符

\s

[\f\n\r\t\v]

空白字符

\S

[^\f\n\r\t\v]

非空白字符

\w

[a-zA-Z_0-9]

单词字符(字母、下划线、数字)

\W

[^a-zA-Z_0-9]

非单词字符

例子:常用 / \d/   /\w/

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)

正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

如果 ^ 和 $ 在一起,表示必须是精确匹配。

边界符

说明

^

表示匹配行首的文本(以谁开始)

$

表示匹配行尾的文本(以谁开始)

1.开头边界: /^abc/

正确含义: 检测 以a开头 + bc的字符串 (^只对a检测)

错误含义: 检测 以abc开头的字符串 (^把abc当做整体)

2.结尾边界: /abc$/

正确含义 : ab + 以c结尾的字符串 ($只对c检测)

错误含义: 以abc结尾 ($把abc当做整体)

3.严格匹配: 开头边界与结尾边界同时使用

/^abc$/ : 只有唯一答案 ,就是abc本身

正确含义 : 以a开头 + b + 以c结尾 (^检测a开头, $检测c结尾)

错误含义 : 以abc开头,以abc结尾

量词 (表示重复次数)

量词用来 设定某个模式出现的次数 注意: 逗号左右两侧千万不要出现空格

量词

说明

*

重复零次或者更多次

+

重复一次或者更多次

重复零次或者一次

{n}

重复n次

{n,}

重复n次或者更多次

{n,m}

重复n到m次

分组() 在正则中有两种含义

1.分组 : 把多个字符归为一组,用于量词

需求:检测字符串出现三次 love

错误写法 :/love{3}/ 检测 l+o+v+e{3次}

正确写法: /(love){3}/ 检测 (love)出现三次

2.提升优先级 : 让 | 只匹配小括号内部的字符,提升|的优先级

需求:检测字符串 出现 love 或 live

错误写法:/lo|ive/ 检测 lo 或 ive

正确写法:/l(o|i)ve/ 检测 l + o 或 i + ve

修饰符 : 对正则表达式起到修饰的作用

g : global,全局匹配

i : intensity, 不区分大小写

修饰符语法: /正则表达式/修饰符

* new RegExp('正则','修饰符')

例子:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

正则表达式总结:

1.手机号正则:/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/

2.验证码 :/^\d{6}$/

3.账号密码 6-20位:大小写字母, 下划线_  :/^\w{6,20}$/

4.邮箱: /^\w+[@]\w+\.\w+(\.\w+)?$/

替换:replace

语法:字符串.replace(/正则表达式 ,'替换的文字')

编程思想:解决同类问题的 固定思路

求和思想: 求累加和

擂台思想: 求最大值和最小值

排他思想:多个元素只能选中一个

开关思想:判读数组中是否所有的元素都满足条件

      全选框:每一个选择框都要选中

      非空判断:每一个输入框都要输入文本

开关思想例子:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm6L-q4oCUMA==,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值