day 17 正则表达式

1.什么是正则表达式?

正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。正则表达式,就是用某种模式去匹配一类字符串的公式。

众所周知,在程序开发中,难免会遇到需要匹配(match)、查找(seach)、替换(replace)、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。

在大多数大型网站都有注册功能,注册的表单都会有相应的验证,例如姓名表单要求输入汉字,邮箱表单必须要符合电子邮箱的模式。那程序是怎么判断用户输入的内容是否符合相应表单的要求呢?这就用到了正则表达式。

2.正则表达式的定义方法

正则表达式的定义共有2种方式:    

1. 显式定义(构造函数)      

 let  变量名 =  new RegExp("正则表达式模式");    

2. 隐式定义(字面量)  

  let 变量名 =  /正则表达式模式/

举例:

let myregex = new ReExp("\d+");

上面语句等价于下面:

let myregex = /\d+/;

3.正则表达式常用的方法 

 1. test  

正则去匹配字符串,如果匹配成功就返回真,匹配失败返回假

写法:正则.test(字符串)

如:

var str='abcdef';

var re=/b/;

alert(re.test(str));

2. search

正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1

写法:字符串.search(正则)

如:

var str="abcdef";

var re=/b/;

alert(str.search(re));

//返回1

var re=/w/;

//返回-1

var re=/B/;

//返回-1

3. match

正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null 写法:字符串.match(正则)

比如上面例子要找出数字

var str="dgfhfgh254bhku289fgdhdy675";

var re=/\d+/g;

alert(str.match(re));

//输出2    

4. replace

正则去匹配字符串,匹配成功的字符被新的字符串替换

replace的写法:字符串.replace(正则,新字符串)

如:  

var str="aaa";

var re=/a/;

str=str.replace(re,"b");

alert(str);

//输出baa

5. exec

正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,

index:表示第一个匹配的字符在原字符串中的位置,

input:表示原字符串,

groups:表示当初中命名的分组时匹配到的分组对象;如果匹配不成功,就返回null

写法:正则. exec(字符串)

比如上面例子要找出数字

var str="dgfhfgh254bhku289fgdhdy675";

var reg=/\d+/g;

alert(reg.exec(str));

//输出2    

4.常用元字符

普通字符就是a~z、0~9这类常见的字符。其中特殊字符又称为“元字符”。元字符之所以叫特殊字符,就是它的特点跟普通字符不一样。例如邮政编码中,我们限定只能输入6个数字,那“数字”这个概念怎么理解呢?这个时候我们就用到了元字符\d来代替。

 5.连接范围

一、连接符简介

学习了正则表达式常用元字符,我们知道要想匹配数字,正则表达式就要这样写:

  [123456789]   [1-9]

其中[ ]表示匹配方括号内的任一字符。在正则表达式中,匹配数字或者英文字母的书写非常不方便。因此,正则表达式引入了连接符“-”来定义字符的范围。

6.限定符-量词 

7.定位符-边界 

一、什么是定位符?

在正则表达式中,定位符,说白了,就是限定某些字符出现的位置

常用的正则表达式定位符如下:

8.修饰符 

g: global 全文搜索,不添加,搜索到第一个匹配停止

i:  ignore case 忽略大小写,默认大小写敏感

m: multiple lines 多行搜索 

9.特殊转义符 

正则特殊转义符

\f 匹配换页符

\n 匹配换行符

\r 匹配回车符

\t 匹配制表符

\v 匹配垂直制表符  

 \\ 匹配\  

 \" 匹配 "  

 \' 匹配 ' 

10.优先级顺序 

 总结

正则字符      

常用元字符 、连接符、限定符、定位符 修饰符、选择符、转义符 。如: ^  |    [1-9]   ?   $

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值