尚硅谷JS、黑马 - 正则表达式

85~90  正则表达式

用于定义一些字符串的规则,从而检查字符串是否符合规则,或者将字符串中符合规则的内容提取出来。

 

创建

(1)创建正则表达式对象的方式

                                           var reg = new RegExp ( '正则表达式', '匹配模式');

或用字面量方式创建:       reg = /正则表达式/匹配模式;

 

检测

(2)正则化表达式的方法

                                           reg.test ('...')

检查字符串中是否含有正则表达式的内容,若符合就返回true,否则返回false;

按照“匹配模式”来检查, 'i' 表示忽略大小写,'g' 表示全局匹配模式(区分大小写),'gi' ;

一个正则表达式可以设置多个匹配模式,且不计较书写顺序。

 

 

(3)正则表达式中的特殊语法:

(字符类)

[..]  ——  或,是否含有中括号内的任意一个字符,如 [ab] == a|b、[A-z] 任意字母;

[^..]—— 是否含有除了中括号以外的的字符;

 

(量词符)

..{n} —— 通过数字量词n表示前面一个内容出现的次数,如 a{3}、(ab){3};

..{m,n} —— 前面一个内容出现m~n次,如果n不写,就表示出现m次以上;

..+ —— 前面一个内容出现一次以上,相当于..{1,};

..* —— 前面一个内容出现任意次,相当于..{0,};

..? —— 前面一个内容出现0或1个,相当于..{0,1};

 

(边界符)

^.. —— 表示以..开头;     ..& —— 表示以..结尾;

^..$ —— 同时使用时要求字符串完全符合中间的正则表达式。

 

//去除开头的空格
str = str.replace(/^\s*/,'');

//去除结尾的空格
str = str.replace(/\s*&/,'');

//替换开头和结尾的空格
str = str.replace(/^\s* | \s*&/g,'');

 

(4)支持正则表达式的String对象的方法

即支持以正则表达式作为参数,如  str.split ( /[A-z]/ ) ,表示以字母为分隔划分字符串;

还有 str.search( )、str.match( )、str.replace( ),这三个方法默认只搜索、匹配或替换第一个符合条件的字符,所以想要操作全部的字符,要在正则表达式后面要加上全局匹配模式‘g’。(search除外,只能搜索第一个)

 

 

黑马

概述

正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式,在 JS 中也是一种对象;

主要应用:验证(匹配)表单的输入、替换敏感词、提取字符串中特定的部分。

 

特殊字符

1. 边界符

^   ( /^abc/ )匹配开头的字符(以指定字符开头)
$   ( /abc$/ )匹配结尾的字符(以指定字符结尾)
  /^abc$/ 精确匹配(必须与正则表达式相同)

 

2. 字符类

[  ]  ——  或,是否含有中括号内的任意一个字符,如  /[A-z0-9]/  匹配任意字母和数字; 其中 - 是一个范围符;

[^..] —— 取反,是否含有除了中括号以外的的字符;

 

3. 量词符

..+ —— /a+/  前面一个字符出现一次以上,相当于..{1,};

..* —— 前面一个内容出现任意次,相当于..{0,};

..? —— 前面一个内容出现0或1个,相当于..{0,1};

..{n} —— 通过数字量词n表示前面一个内容出现的次数,如 a{3}、(ab){3};

..{m,n} —— 前面一个内容出现m~n次,如果n不写,就表示出现m次以上;

 

应用:设定某个模式出现的次数   ——   /^[a-zA-Z0-9_-]{6,16}$/  表示只能输入大小写字母、数字、下划线、短横线 这个范围的字符,并且个数在6-16之间。

 

可以用小括号改变优先级。

 

3. 预定义类

\d匹配0-9之间的任一数字,相当于 [0-9]
\D匹配0-9以外的字符,相当于 [^0-9]
\w匹配任意字母、数字和下划线,相当于 [A-z0-9_]
\W匹配字母、数字和下划线以外的字符,相当于 [^A-z0-9_]
\s匹配空格(包括换行符、制表符等),相当于 [\t\r\n\v\f]
\S匹配f非空格的字符,相当于 [^\t\r\n\v\f]

 

10.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值