正则表达式RegExp

课前补充:
转义字符:\,反斜杠后面的字符取消掉原来的意思,转成文本
\\ 会输出一个\
\r :行结束
\n :换行
\t : 缩进 table键
应用:
在js中添加innerHTML的时候,等号右边是字符串,如果写入的代码有回车,浏览器会报系统解析错误。 那在每一行代码后面加一个\,再回车,就不会报错。

正则表达式作用:匹配特殊字符或有特殊搭配原则的字符最佳选择。
例如:邮箱名的正确输入,截取输入字符串中所有AABB格式的字符串。。
创建方式:
①直接量:var reg = / abc/;
即规则abc,

  		var reg = /abc/;
        var str = 'abcdefg';

即 是否按照abc的规则,小写,紧靠着,顺序一致
显示结果为true,说明str中是含有reg规则的。在这里插入图片描述

i 不考虑大小写;还有m,g

② new RegExp

  new reg = new RegExp("abc");
  new reg = new RegExp("abc","i");

注意:
有new

 	var reg = /abc/m;
 	var reg1 = new RegExp(reg);

结果:reg和reg1是不一样的在这里插入图片描述

如果是没有new的话,abc属性就是一致。

 var reg = /abc/m;
 var reg1 = RegExp(reg);

结果是

修饰符
g 全局匹配,出现一组匹配的时候,还会继续匹配。
两个语句的使用:

 var reg = /abc/m;
 str = "abcdefg";

 reg.test();//只返回true和false
 str.match();//返回匹配的所有字符串

var reg = /^a/; //必须a在行级开头,空格符回车都不可以

正则表达式中的表达式
例:选出对应位数字,在0-9区间的

 var reg = /[1234567890][1234567890][1234567890]/g;
 var str = "12390ubdhgan87360aoqndi";

结果:
在这里插入图片描述

正则表达式的元字符和表达式是一个东西,元字符(Metacharacter)是拥有特殊含义的字符:
\w:[ 0-9A-z ]
\W:===[ ^/w ]除了[ 0-9A-z ]之外的都包括。在这里 ^表示非。
\d:[ 0-9]。

\D:===[ ^/d ],即除了[ 0-9]之外的都包括。在这里 ^表示非。
\s:所有的空白字符,

\S:===非空白字符。

空白字符包括
制表符\t
回车符\r
换行符\n
垂直换行符\v
换页符\f

\b: 单词边界
\B:非单词边界 (单词边界在字符串里面可以看成空格 )

 var reg = /\bcde/g;//字母边界+cde字母组合
 var str = "abc cde fgh"; //只有第二组

结果显示:
在这里插入图片描述

正则表达式的量词
n+ :匹配任何包含至少一个n的字符串,这个变量可以出现1到无数次。
n*:匹配任何包含零个或多个n的字符,这个变量可以出现0到无数次。
n?:出现0到1个
{x}:选出出现x个的
{x,y}:x至y个n的序列的字符串
{x,}:包含至少X个n序列的字符串
n是一个变量,n+代表这个变量可以重复出现1次到无数次,n*代表{0到正无穷}

例子:

	var reg = /\w+/g;
    var reg1 = /\w*/g;
    var str = "abcde";

结果显示
在这里插入图片描述
当 /\w*/g的时候,会在末尾出现一个空,因为g是全局范围的,搜索到一个符合规则的并不会停止,而是会继续向后搜索,\w规则是0-9A-z,在abcde字母串末尾,会有一个逻辑空,会继续匹配出来。

$ 以什么结尾
^以什么开头

	var reg = /^abc$/g;//指以a开头后跟bc且以c为结尾
    str = "abcabc";

结果是null,两组abc并不同时符合
在这里插入图片描述

正向预查
?=n 匹配任何其后紧接制定字符串n的字符串;
?!n 所有后面不跟着b的a

例:
找出后面有b的所有的a字符串,b仅仅作为筛选条件,但并不是我们匹配的目标。

var reg = /a(?=b)/g;

注意:正则表达式匹配遵循的原则是“贪婪匹配”,即能匹配出多个的时候,就不会匹配少的。
例如:var reg = /a+/g;
str = “aaaaaa”;
reg规则是匹配出1至多个的a,那么匹配出的就是全部的a,就是往多了去。
当 reg = /a+?/g;---------打破贪婪原则,会按照最少的来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值