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的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS API for JavaScript 4.2学习笔记[29] 热点(密度)分析——以报警频率为例使用Geoprocessor类