一、JSON数据格式*
概述:JSON【Javascript Object Nonation】 JS对象一种标记法
JS有JSON数据格式,JSON数据格式是由一个大的花括号表示,JSON数据格式在JS中是引用类型的数据。JSON数据格式作用如下:
1.前端工程师可以后台工程师进行数据交换
2.JSON数据格式可以通过KV对存储、读取、修改和添加数据。
语法格式:
{
"name":"小明",
"age":12
}
JSON数据格式的K务必加上双引号,多个KV对之间用逗号隔开。
1.1、存储数据:
<script> //JSON数据格式:大花括号表示 console.log({}); //JSON属于引用类型的数据 console.log(typeof {}); //JSON数据格式存储数据 var info = { "name" : "诸葛亮", "age" : 12, "marray":true, "hobby":["吃饭","睡觉"] } console.log(info); </script>
JSON存储数据的时候KV对进行存储,K务必加上双引号
JSON存储数据的时候右侧V可以是任意类型数值
3.2读取数据
概述:可以通过点语法和枚举法来读取数据。
<script> var info = { "name" : "诸葛亮", "age" : 12, "marray":true, "hobby":["吃饭","睡觉"] } //点语法读取数据 console.log(info.name); console.log(info.hobby); //枚举法读取数据 console.log(info["name"]); console.log(info["age"]); </script>
用枚举法读取数据时一定要注意用中括号将加了双引号的K括起来即可。
1.3、修改已有数据
概述:通过点语法或者枚举法修改数据中的V。
<script> var info = { "name" : "诸葛亮", "age" : 12, "marray":true, "hobby":["吃饭","睡觉"] } //点语法和枚举法进行修改数据 info.name = "刘备"; info["age"] = 88; console.log(info); </script>
添加数据:
<script> var info = { "name" : "诸葛亮", "age" : 12, "marray":true, "hobby":["吃饭","睡觉"] } //用点语法或者枚举法动态的添加数据 info.sex = "男"; info["color"] = "yellow"; console.log(info); </script>
总结:
点语法或者枚举法在没有当前这个K的时候,给JSON数据格式添加新的KV对
点语法或者枚举法在有这个K的时候,给JSON数据格式修改对应KV对中V的值。
二、正则表达式【RegExp】
2.1、定义与语法格式
概述:正则表达式是用于匹配字符串的一种模式、写法。正则表达式定义最常用的方法是字面量,写法//(定界符),也是引用类型的数据
<script> //正则表达式的写法 var reg = /abc/; console.log(reg); //正则表达式的数据类型是Object console.log(typeof reg); </script>
2.2、正则表达式结合字符串方法进行匹配
概述:正则表达式只能结合四个字符串方法进行使用,分别是split、match、search、replace
2.2.1、正则表达式结合split方法
<script> //split方法结合正则一起使用 var str = "我很喜欢中国 上海 哈尔滨 北京"; var arr = str.split(" "); console.log(arr); //在正则表达式中,\s代表的是一个空格,+:在正则当中代表的是量词,代表的含义是连续出现次数大于等于1的 var arr1 = str.split(/\s/); var arr2 = str.split(/\s+/); console.log(arr1); console.log(arr2); </script>
2.2.2、正则表达式结合match方法
<script> var str = "我是中国人,我爱中国"; //match可以结合正则一起使用,将所有符合条件的字符串匹配出来 //在正则当中g可以将全部符合条件的字符全部匹配出来,修饰符只能放在右侧边界符 var arr = str.match(/中国/); var arr1 = str.match(/中国/g); console.log(arr); console.log(arr1); </script>
2.2.3、正则表达式结合search方法
<script> var str = "今天天气出了大太阳,出太阳真的好热"; console.log(str.search(/大太阳/)); //search方法无论何时都只能获取到满足条件的第一个字符串的索引值,即使加修饰符g也不行 console.log(str.search(/大太阳/g)); </script>
2.2.4、正则表达式结合replace方法
<script> //replace:只能替换符合条件的第一个字符,后面符合条件的字符无法进行替换 var str = "我喜欢张杰,因为张杰的歌曲很好听"; var str1 = str.replace("张杰","汪峰"); console.log(str1); //第一个/张杰/g不打双引号是因为他是正则表达式,不需要双引号。而第二个汪峰加双引号是因为他是replace的参数,而且该参数的值是字符串,因此需要加双引号 var str2 = str.replace(/张杰/g,"汪峰"); console.log(str2); </script>
总结:要结合字符串方法本身的特性和正则进行结合,比如split方法是按照符合条件的全部字符进行切割,在使用的时候就不需要加修饰符g,而match和replace只是针对符合条件的第一个字符进行操作,在需要全部进行相应的操作室就要在正则表达式后面加上修饰符g。
2.3、正则表达式方法
exec:属于正则表达式方法,在目标字符串中进行一次匹配,返回一个新的数组,也只能匹配出第一个符合要求的字符串
<script> var str = "aaaabccccbacabc"; var reg = /abc/; var arr = reg.exec(str); console.log(arr); </script>
test:属于正则表达式方法,可以检测正则表达式当中的数据是否在目标字符串中出现,如果出现则返回布尔值真,否则返回布尔值假
<script> var str = "我很喜欢中 国"; var reg = /\s+/; console.log(reg.test(str)); </script>
这两个都是正则表达式的方法,使用时是正则表达式打点,传的是目标字符串。
2.4、字符集
简单类:任意多个字符进行集合书写,匹配某一个符合条件字符。(类比逻辑或运算)比如:[abc]
<script> //简单类:把多个字符聚集在一起进行匹配,只能匹配某一个符合条件的字符 var str = "abc,bbc,cbc"; var arr = str.match(/[ab]bc/g); console.log(arr); </script>
范围类:有时匹配的东西过多,而且类型相同,全部输入太麻烦,我们可以在中间加横线表示一个类别。比如:[0-9] [A-Z] [a-z]
<script> //匹配字符串里面的所有数字 //范围类 var str = "dhwqhjn12374821,asdw1231"; var arr = str.match(/[0-9]+/g); console.log(arr); </script>
组合类:把多个范围类放在一起进行匹配
<script> var str = "我知道A182,也知道b29"; var arr = str.match(/[0-9A-Za-z]+/g); console.log(arr); </script>
2.5、修饰符
g修饰符:用于执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
i修饰符:用于执行对大小写不敏感的匹配
<script> //修饰符书写位置在第二个定界符的右边 //g修饰符:进行全局匹配 var str = "http://www.baidu.com"; var arr = str.match(/[a-z]+/g); console.log(arr); //i修饰符:进行忽略英文大小写匹配 var str1 = "HTTp://wwW.Sina.CoM"; var arr1 = str1.match(/[a-z]+/ig); console.log(arr1); </script>
在正则表达式当中,修饰符可以同时书写多个。
2.6、边界符
^ 开头 表示字符串必须以^后面的内容作为开头
$ 结尾 表示$前面匹配的结果必须位于字符串最后
<script> //边界符^:代表的是字符串是以^后面的内容为开头的 var str = "web是我要学习的知识"; var reg = /^web/; console.log(reg.test(str)); //边界符$:字符串是以$前面的内容作为结尾的 var reg1 = /知识$/; console.log(reg1.test(str)); </script>