JavaScript学习笔记29

Posted -恰饭第一名-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript学习笔记29相关的知识,希望对你有一定的参考价值。

一、补充

<script>
        var str = "abcdedf";
        var str = "abcd\\"edf";
</script>

会把\\后面接的字符取消原来的意思,变成文本

想打一个转义符合\\文本,就用\\就可以了


\\n是换行

\\n只在console.log里面有效,在document.write里面没有用,会变成一个空格


\\r是行结束符,但是写成\\r\\n才看的出来是回车了


\\t是table,缩进符

\\t是table,代表四个空格,缩进符


系统不允许字符串多行显示:

在这里插入图片描述

在这里插入图片描述


我又想写多行字符串,又不能让系统报错,就加转义字符\\,意思是把后面的回车转成字符串,如下方:

在这里插入图片描述

或者用字符串连接,(low):

在这里插入图片描述

二、RegExp正则表达式

正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择

RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具(判断字符串不满足要求)
正则表达式其他语言也有,规则是一样的,在这个基础上,js增加了自己2独特的方法

在这里插入图片描述

1、基础语法

创建一个正则表达式

第一种方法:正则表达式字面量// 【推荐使用这种】

var reg=/pattern/

在这里插入图片描述

在这里插入图片描述


意思是正则表达式测试一下字符串含不含有我规定的片段

在这里插入图片描述

在这里插入图片描述


像下面这种,虽然都有 abce,但是没挨着,或者排序不对,都不算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二种方法:new RegExp();

var reg=new RegExp(“pattern”)

例:括号里面写的是规则

在这里插入图片描述

在这里插入图片描述


下面是给正则表达式增加属性的方法:

在这里插入图片描述


在正常情况下,下面两个虽然是形式一样,但是是两个不同的正则表达式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


但是有一个非正常的情况:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


下面是给正则表达式增加属性(修饰符):
i是ignoreCase,是忽视大小写的意思,例:var reg=/abce/i
g是全局匹配的意思,例:var reg=/abce/g
m是执行多行匹配,例:var reg=/abce/m

在这里插入图片描述

在这里插入图片描述


下面的 是一个制表符\\t 打出来的,但是系统是不能识别的

在这里插入图片描述

在这里插入图片描述

要写成以下形式才能识别\\t
在这里插入图片描述

在这里插入图片描述


例\\r 匹配回车

在这里插入图片描述

在这里插入图片描述


\\uxxxx 这是简单的四位的 Unicode 编码(包含了汉字)

查找以十六进制数 xxxx 规定的 Unicode 字符。
还有六位数 Unicode 编码(前两位代表的是层,后面代表的是范围)
\\u010000 - \\u01ffff 第一层 Unicode 编码的区间
\\u020000 - \\u02ffff 第二层 Unicode 编码的区间
\\u100000 - \\u10ffff 第十六层 Unicode 编码的区间
经常用的是第一层,一般会忽略 01,写成\\uxxxx。

在这里插入图片描述
在这里插入图片描述


Unicode 编码也可以写成区间,如下

在这里插入图片描述

在这里插入图片描述

注意:代表一切的集合 var reg = /[/s/S]/;或者/[/d/D]/这样类似的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、正则表达式的量词(代表数量的词)

n+ 匹配任何包含至少一个 n 的字符串。这个变量可以出现 1 到无数次。
n* 匹配任何包含零个或多个 n 的字符串。这个变量可以出现 0 到无数次。
n 是一个变量,n+代表这个变量可以重复出现 1 次到无数次,n*代表{0 到正无穷}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

光标在 c 后面,c 后面有逻辑上的距离,如果是零,匹配的是空。
\\w 会先把能识别值的先识别,到最后识别不了,才试一下
零,匹配空


在这里插入图片描述
在这里插入图片描述

因为光标在 a 前面,逻辑上有距离,匹配了一个零,空串;然后光标移动 a 后面,逻辑上有距离,又匹配了一个零,空串,所以有多少个光标定位点就有多少个


在这里插入图片描述
在这里插入图片描述

正则表达式有一个贪婪匹配原则,能多就不少


n? 匹配任何包含零个或一个 n 的字符串。这个变量 0 或 1 个一匹配。
最后会匹配一个空

<script>
        var reg = /\\w?/g;
        var str = "aaaaaaa";
    </script>

在这里插入图片描述

n{X} 匹配包含 X 个 n 的序列的字符串。
n{3}就是三个三个一匹配

在这里插入图片描述
在这里插入图片描述

n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
下面要符合贪婪匹配原则,/\\w{3,5}/就是能 5 个就不 4 个,能 4 个就不 3 个

在这里插入图片描述
在这里插入图片描述

n{X, } 匹配包含至少 X 个 n 的序列的字符串。
例/\\w{1,}/ {1,}和 n+是一样的,指匹配 1 到无数个。
例/\\w{2,}/ {2,}是匹配 2 到无数个



思考:量词,量的是什么?

答案:n*是 n 乘以这个量词,/\\w{2,}/不是\\w 的结果乘以量词,如果\\w 的结果乘以这个量词,那么匹配的都是一致的。

量词量的是 w,是\\w 乘很多东西,再每个 w 再随机匹配。

而不是\\w 先匹配结果,再乘以量词(例如先匹配一个 a,再乘以那么多 a,就匹配不成来了,所以不能这么理解)


在这里插入图片描述
在这里插入图片描述


n$ 匹配任何结尾为 n 的字符串。

在这里插入图片描述
在这里插入图片描述

^abc 是以 a 开头的 abc

在这里插入图片描述
在这里插入图片描述

$是以 d 结尾,这个匹配不出来

在这里插入图片描述


以 ed 结尾
在这里插入图片描述

在这里插入图片描述

下面面这道题应该理解成:以当前这个 abc 开头,以这个 abc 结尾的字符串

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


作业:写一个字符串,检验一个字符串首尾是否含有数字。


首尾都含有的意思是需要加“都”;首尾的意思是首有,或,尾有

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



如果是首和尾都有:

在这里插入图片描述
在这里插入图片描述

三、RegExp 对象属性(FF 是火狐浏览器,IE 的 ie 浏览器,从哪个版本开始兼容)

在这里插入图片描述
在这里插入图片描述

四、RegExp 对象方法

在这里插入图片描述

reg.exec( );是一个匹配的方法

在这里插入图片描述

在这里插入图片描述



这是一个类数组

在这里插入图片描述

在这里插入图片描述



说明他在第一个 ab 后面接着匹配

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述



在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



相当于游标一直在变,一圈一圈的转

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



游标的属性是 lastIndex。lastIndex 是为了 exec 而存在的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


如果把游标归 0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



如果不加 g,lastIndex 就不会动,如下

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以上是关于JavaScript学习笔记29的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

ReactJs学习笔记01

JavaScript高级程序设计---学习笔记

Javascript MVC 学习笔记 视图和模板

干货JavaScript DOM编程艺术学习笔记1-3

ArcGIS API for JavaScript 4.2学习笔记[29] 热点(密度)分析——以报警频率为例使用Geoprocessor类