09-JavaScript内建对象

09-内建对象


1.解构赋值(ES6)

1).数组的解构

const arr=["孙悟空","猪八戒","沙和尚"]
let a,b,c
a=arr[0]
b=arr[1]
c=arr[2]
console.log(a,b,c);
[a,b,c]=arr //解构赋值
console.log(a,b,c);

let [d,e,f,g]=["唐僧","白骨精","蜘蛛精","玉兔精"];//声明的同时赋值
console.log(d,e,f,g);
;[d,e,f,g]=[1,2,3]
console.log(d,e,f,g);
;[d,e,f,g=10]=[1,2,3] //指定默认值
console.log(d,e,f,g);
;[d,e,f,g=g]=[1,2,3]    //保持原有值或者默认值
console.log(d,e,f,g);

let [n1,n2]=[4,5,6,7]
console.log(n1,n2);

;let [n1,n2, ...n3]=[4,5,6,7]   //解构数组时,可以使用...来设置获取多余的元素 
console.log(n1,n2,n3);

function fn() {
 return ["二郎神","猪八戒"]
}
let [name1,name2]=fn()
console.log(name1,name2);

//可以通过解构赋值来快速交换两个变量的值
let a1=10
let a2=20
/* let temp=a1
     ;a1=a2
     ;a2=temp */
;[a1,a2]=[a2,a1]
console.log("a1=",a1);		//a1=20
console.log("a2=",a2);		//a2=10
const arr2=["孙悟空","猪八戒"]
console.log(arr2);
;[arr2[0],arr2[1]]=[arr2[1],arr2[0]]
console.log(arr2);

const arr3=[["孙悟空",18,"男"],["猪八戒",20,"男"]]
for (let stu of arr3) {
 for (let v of stu) {
     console.log(v);
 }
}
let [obj,[name,age,gender]]=arr3
console.log(name,age,gender);
console.log(obj);

2).对象的解构

const obj={name:"孙悟空",age:18,gender:"男"}
// let {name,age,gender}=obj   //声明变量同时解构对象
console.log(obj);
let name,age,gender
({name,age,gender}=obj)
let {address}=obj   //没有的属性返回undefined
console.log(address);
console.log(name,age,gender);
let {name:a,age:b,gender:c}=obj //:别名
console.log(a,b,c);
let {name:a,age:b,gender:c,add="花果山"}=obj //:别名
console.log(a,b,c);
let {name:a,age:b,gender:c,address:d="花果山"}=obj //:别名
console.log(a,b,c,d);


2.对象的序列化

1).对象的序列化:

a.JS中的对象使用时都是存在于计算机的内存中的
b.序列化指将对象转换为一个可以存储的格式,在JS中对象的序列化通常是将一个对象转换为字符串(JSON字符串)
c.序列化的用途(对象转换为字符串有什么用):
-对象转换为字符串后,可以将字符串在不同的语言之间进行传递,甚至可以直接对字符串进行读写操作,使得JS对象可以不同的语言之间传递
d.用途:
①.作为数据交换的格式
②.用来编写配置文字
e.如何进行序列化:
①.在JS中有一个工具类JSON(JavaScript object Notation)JS对象表示法
②,JS对象序列化后会换一个字符串,这个字符串我们称其为JSON字符串
③.也可以手动的编写JSON字符串,在很多程序的配置文件就是使用JSON编写的
④.编写JSON的注意事项:
Ⅰ.JSON字符串有两种类型:
JSON对象 {}
JSON数组[]
Ⅱ.JSON字符串的属性名必须使用双引号引起来
Ⅲ.JSON中可以使用的属性值(元素)
-数字(Number)
-字符串(String) 必须使用双引号
-布尔值(Boolean)
-空值(Null)
-对象(0bject {})
-数组(Array [])
Ⅳ.JSON的格式和JS对象的格式基本上一致的,
注意:JSON字符串如果属性是最后一个,则不要再加,

const obj={
 namne:"孙悟空",
 age:18
}
//将obj转换为json字符串
const str=JSON.stringify(obj)   //JSON.stringify()可以将一个对象转换为json字符串
const obj2=JSON.parse(str)  //JSON.parse()可以将一个json字符串转换为一个JS对象
console.log(obj);
console.log(str);
console.log(obj2);
const str2='{"name":"猪八戒","age":"28"}'
console.log(str2);

2).使用JSON进行深复制

const obj={
 name:"孙悟空",
 friend:{
     name:"猪八戒",
 }
}
//对obj进行浅复制
const obj2=Object.assign({},obj)

//对obj进行深复制
const obj3=structuredClone(obj)

//使用JSON来完成深复制
const str=JSON.stringify(obj)
const obj4=JSON.parse(str)

const obj5=JSON.parse(JSON.stringify(obj))

3.Map

Map:
a.Map用来存储键值对结构的数据(key-value)
b.Object中存储的数据就可以认为是一种键值对结构
c.Map和Object的主要区别:
-Object中的属性名只能是字符串或符号,如果传递了一个其他类型的属性名,JS解释器会自动将其转换为字符串
-Map中任何类型的值都可以称为数据的key

创建:
 new Map()
属性和方法:
 map.size( )			    获取map中键值对的数量
 map.set(key, value)	     向map中添加键值对
 map.get(key)		    	根据key获取值
 map.delete(key)			删除指定数据
 map.has(key)				检查map中是否包含指定键
 map.clear()				删除所有的键值对
 map.keys()					获取map的所有的key
 map.values()				获取map的所有的value
 map.entries()				获取map的所有的键值对
//创建一个Map
const map=new Map()
map.set("name","孙悟空")
map.set(obj2,"呵呵")
map.set(NaN,"哈哈哈")
console.log(map);
map.delete(NaN)
console.log(map);
console.log(map.get('name'));
console.log(map.has('name'));
console.log(map.has(NaN));
map.clear()
console.log(map);

const map1=new Map()
map1.set("name","孙悟空")
map1.set("age",18)
map1.set({},"呵呵呵 ")
//将map转换为数组
//const arr=Array.from(map1)  //结构=>[["name","孙悟空"],["age",18]]
const arr=[...map1]
console.log(arr);

const map2=new Map([
 ["name","猪八戒"],
 ["age",28],
 [{},()=>{}]
])
console.log(map2);
//遍历map
for (const entry of map2) {
 console.log(entry);
}for (const [key,value] of map2) {
 console.log(key,value);
}②

map2.forEach((key,value)=>{
 console.log(key,value)
})

for (const key of map2.values()) {
 console.log(key);
}
for (const key of map2.keys()) {
 console.log(key);
}


4.Set(ES6)

Set用来创建一个集合,同点在于Set中不能存储重复的数据

创建
 new Set( )
 new Set( [...])
方法
 size    	获取数量
 add()   	添加元素
 has()   	检查元素
 delete()	删除元素
//创建一个Set
const set=new Set()
//向Set中添加数据
set.add(10)
set.add("孙悟空")
set.add(10)     //相同的元素添加不进去
console.log(set);

for (const item of set) {
 console.log(item);
}

const arr=[...set]
console.log(arr);

const arr2=[1,2,3,2,1,3,4,5,6,7,8,7,9,10]
const set2=new Set(arr2)
console.log([...set2]);


5.Math

-Math一个工具类
-Math中为我们提供了数学运算相关的一些常量和方法

-常量:
	Math.PI 圆周率
-方法:
 Math.abs()			求一个数的绝对值
 Math.min()			求多个值中的最小值
 Math.max()			求多个值中的最大值
 Math.pow( )		求x的y次幂
 Math.sqrt()		求一个数的平方根
 Math.floor() 		向下取整
 Math.ceil()		向上取整
 Math.round()		四舍五入取整
 Math.trunc()		直接去除小数位
 Math.random()		生成一个0-1之间的随机数
//trunc是直接将小数位后删去,所以truncate(-1.4)=-1,而floor(-1.4)=-2
for (let i = 0; i < 10; i++) {
 /* 
             生成0-5之间的随机数
                 Math.random() --> 0-1
                 生成0-X之间的随机数:
                     Math.round(Math.random()*X)
                     Math.floor(Math.random()*(X+1))
                 生成X-Y之间的随机数:
                     Math.round(Math.random()*(Y-X)+X)
         */
 let result=Math.round(Math.random()*5)
 console.log(result);
 result=Math.floor(Math.random()*6)
 console.log(result);

 //1-6
 result=Math.round(Math.random()*5+1)
 //11-20
 result=Math.round(Math.random()*9+11)
 console.log(result);
} 


6.Date对象

-在JS中所有和时间相关的数据都由Date对象来表示

//创建一个Date对象
let d=new Date();   //直接通过new Date()创建时间对象时,它创建的是当前的时间的对象
//创建一个指定的时间对象
//需要在Date()构造函数中传递一个表示时间的字符串作为参数
//日期的字符串格式:月份/日/年 时:分:秒      年-月-日T时:分:秒
var d2=new Date("12/13/2016 11:20:20");
console.log(d2);
d2=new Date("2019-11-23T23:34:56")
console.log(d2);
//new Date(年份,月,日,时,分,秒,毫秒)
d2=new Date(2016,0,1,13,45,33)
console.log(d2);

1).对象的方法:

①.getDate()

​ -获取当前日期对象是几日

var date=d.getDate();
console.log(date);		//14
②.getDay()

​ -获取当前日期对象是周几
​ -会返回一个0-6的值
​ 0表示周日
​ 1表示周一

var day=d.getDay();
console.log(day);		//2
③.getMonth()

​ -获取当前日期对象的月份
​ -会返回0-11的值

var month=d.getMonth();
console.log(month);		//1
④. getFullYear()

​ -获取当前日期对象的4位年份

var year=d.getFullYear();
console.log(year);		//2023
⑤.getTime()

​ -获取当前日期对象的时间戳(timestamp)
​ -时间戳,指的是从格林尼治标准时间的1970年1月1日,0时0分0秒
​ 到当前日期所花费的毫秒数(1秒= 10日日毫秒)
​ -计算机底层在保存时间时使用都是时间戳

var time=d.getTime();
console.log(time/1000/60/60/24/365);	//53.156958092275495
⑥.Date.now()

​ -获取当前的时间戳

//利用时间戳来测试代码的执行的性能
//获取当前的时间戳
time=Date.now();
console.log(time);
⑦.toLocaleString()

​ -可以将一个日期转换为本地时间格式的字符串
​ -参数:
​ 1.描述语言和国家信息的字符串
​ zh-CN中文中国
​ zh-HK中文香港
​ en-US英文美国
​ 2.需要一个对象作为参数,在对象中可以通过对象的属性来对日期的格式进行配置
​ dateStyle日期的风格
​ timeStyle 时间的风格
​ full
​ long
​ medium
​ short
​ hour12是否采用12小时值
​ true
​ false
​ weekday星期的显示方式
​ long
​ short
​ narrow
​ year
​ 2-dight
​ numeric

/* 日期的格式化 */
var date=new Date()
let result=date.toLocaleDateString()    //将日期转换为本地的字符串
result=date.toLocaleTimeString()    //将时间转换为本地的字符串
result=date.toLocaleString("zh-CN",{dateStyle:"full",timeStyle:"full",hour12:true})
console.log(result);


7.包装类

a.浏览器自用:
基本数据类型:String Number Boolean Null Undefined
引用数据类型:Object
b.在JS中,除了直接创建原始值外,也可以创建原始值的对象
c.在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
①.new String() -可以将基本数据类型字符串转换为String对象
②.new Number() -可以将基本数据类型的数字转换为Number对象
③.new Boolean() -可以将基本数据类型的布尔值转换为Boolean对象
④.注意:在实际应用中不会使用基本数据类型的对象,如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果
d.包装类:
①.JS中一共有5个包装类:
Ⅰ.String --> 字符串包装为String对象
Ⅱ.Number --> 数值包装为Number对象
Ⅲ.Boolean --> 布尔值包装为Boolean对象
Ⅳ.BigInt --> 大整数包装为BigInt对象
Ⅴ.Symbol --> 符号包装为Symbol对象
②.通过包装类可以将一个原始值包装为一个对象,
当我们对一个原始值调用方法或属性时,JS解释器会临时将原始值包装为对应的对象,然后调用这个对象的属性或方法
e.由于原始值会被临时转换为对应的对象,这就意味着对象中的方法都可以直接通过原始值来调用

var a=123;
console.log(typeof a);
//创建一个Number类型的对象
var num=new Number(3);
var str=new String("hello");
var bool=new Boolean(true);
//向num中添加一个属性
num.hello="ahwcewe";
console.log(typeof num);
console.log(num.hello);

方法和属性只能添加给对象,不能添加给基本数据类型

当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,
然后在调用对象的属性和方法,调用完以后,在将其转换为基本数据类型

var s=123;
s=s.toString();
s.hello="你好";
console.log(s.hello);
console.log(typeof s);


8.字符串的方法

1).字符串:

a.字符串其本质就是一个字符数组 “hello” --> [ “h”, “e”,“l”,“l”,“o”]
b.在底层字符串是以字符数组的形式保存的 [“H”, “e”, “1”]
c.字符串的很多方法都和数组是非常类似的
d.属性和方法:

length				获取字符串的长度
字符串[索引]			获取指定位置的字符

①.length属性

​ -可以用来获取字符串的长度

//创建一个字符串
var str = "Hello goodmorning";
console.log(str.length);		//17
console.log(str[4]);			//o
②.charAt()

​ -可以返回字符串中指定位置的字符
​ -根据索引获取指定的字符
str.at()(实验方法)
​ -根据索引获取字符,可以接受负索引

console.log(str.charAt(0));
console.log(str[0]);
③.charCodeAt()

​ -获取指定位置字符的字符编码(undefined编码)

console.log(str.charCodeAt(0));		//72
④. String.fromCharCode();

​ -可以根据字符编码去获取字符

console.log(String.fromCharCode(20013));	//中
console.log(String.fromCharCode(0x2692));
⑤.concat()

​ -可以用来连接两个或多个字符串
​ -作用和+一样

console.log(str.concat("你好","再见"));
console.log(str+"你好","再见");
⑥.indexOf()

​ -该方法可以检索一个字符串中是否含有指定内容
​ -如果字符串中含有该内容,则会返回其第一次出现的索引
​ 如果没有找到指定的内容,则返回-1
​ -可以指定一个第二个参数,指定开始查找的位置

console.log(str.indexOf("z"));		//-1
console.log(str.indexOf("o"));		//4
console.log(str.indexOf("o",8));	//8
⑦.lastIndexOf();

​ -该方法的用法和indexOf()一样,
​ 不同的是indexOf是从前往后找,
​ 而lastIndexOf是从后往前找
​ -也可以指定开始查找的位置

console.log(str.lastIndexOf("o"));		//11
⑧.slice()

​ -可以从字符串中截取指定的内容
​ -不会影响原字符串,而是将截取到内容返回
​ -参数:
​ 第一个,开始位置的索引(包括开始位置)
​ 第二个,结束位置的索引(不包括结束位置)
​ -如果省略第二个参数,则会截取到后边所有的
​ -也可以传递一个负数作为参数,负数的话将会从后边计算

console.log(str.slice(0,2));		//He
⑨. substring()

​ -可以用来截取一个字符串,可以S1ice()类似
​ -参数:
​ -第一个:开始截取位置的索引(包括开始位置)
​ -第二个:结束位置的索引(不包括结束位置)
​ -不同的是这个方法不能接受负值作为参数,
​ 如果传递了一个负值,则默认使用0
​ -而且他还自动调整参数的位置,如果第二个参数小于第一个,则自动交换

console.log(str.substring(0,2));		//He
console.log(str.substring(2,0));		//He
console.log(str.substring(2,-1));		//He
⑩.substr()

​ -用来截取字符串
​ -参数:
​ 1.截取开始位置的索引
​ 2.截取的长度

console.log(str.substr(0,5));		//Hello
⑪.split()

​ -可以将一个字符串拆分为一个数组
​ -参数:
​ -需要一个字符串作为参数,将会根据该字符串去拆分数组
​ -如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素

str="abc,bcd,efg,hif";
arr=str.split(",");
console.log(arr);
console.log(arr[0]);

⑫.toUpperCase()

​ -将一个字符串转换为大写并返回

toLowerCase()

​ -将一个字符串转换为小写并返回

console.log(str.toUpperCase());
arr = str.toUpperCase();
console.log(arr);
console.log(arr.toLowerCase());

⑬.includes( )

​ -用来检查字符串中是否包含某个内容
​ 有返回true
​ 没有返回false

let str1="hello hello how are you"
let result;
console.log(str1.includes("how",13));		//false
⑭.str.startswith( )

​ -检查一个字符串是否以指定内容开头

str.endswith()

​ -检查一个字符串是否以指定内容结尾

console.log(str1.endsWith("you"));		//true
⑮.str.padStart()
str.padEnd()

​ -通过添加指定的内容,使字符串保持某个长度

let str2="100"
console.log(str2);
console.log(str2.padStart(7,"+"));
console.log(str2.padEnd(7,"+"));

⑯.str.replace()

​ -使用一个新字符串替换一个指定内容

str.replaceAll()

​ -使用一个新字符串替换所有指定内容

result=str1.replace("hello","abc")
console.log(result);
result=str1.replaceAll("hello","abc")
console.log(result);

⑰.str.slice( )

​ -对字符串进行切片

str.substring()

​ -截取字符串

result=str1.slice(12,15)
console.log(result);
result=str1.substring(12,15)
console.log(result);
result=str1.substring(15,12)
console.log(result);    //substring()会自动交换参数的位置
result=str1.substr(2,5)
console.log(result);

⑱.str.trim()

​ -去除前后空格

str.trimStart( )

​ -去除开始空格

str.trimEnd( )

​ -去除结束空格

str1="   ab  c    "
console.log(str1);
result=str1.trim()
console.log(result);
result=str1.trimStart()
console.log(result);
result=str1.trimEnd()
console.log(result);


9.正则表达式

1).正则表达式的简介

-正则表达式用来定义一个规则
-通过这个规则计算机可以检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来
-正则表达式也是JS中的一个对象,所以要使用正则表达式,需要先创建正则表达式的对象

a.创建正则表达式的对象:
语法:
 var 变量=new RegExp("正则表达式","匹配模式");
     使用typeof检查正则对象,会返回object
 var reg=new RegExp("a");这个正则表达式可以检查一个字符串中是否含有a
     在构造函数中可以传递一个匹配模式作为第二个参数,
         可以是
             i 忽略大小写
             g 全局匹配模式
//创建正则表达式的对象
let reg1=new RegExp("a","i")    //通过构造函数来创建一个正则表达式的对象
//使用字面量来创建正则表达式:/正则/匹配模式
reg1=/a/i
reg1=/\w/
reg1=new RegExp("\w")
console.log(reg1);		// /w/
b.正则表达式的方法:

test( )
​ -使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,
​ 如果符合则返回true,否则返回false

//通过正则表达式检查一个字符串是否符合规则:
var reg = new RegExp("a");
var str = "a";
console.log(reg.test(str));		//true

2).正则表达式的字符

1.在正则表达式中大部分字符都可以直接写
2. | 在正则表达式中表示或
3. [] 表示或(字符集)
    [a-z]·任意的小写字母
    [A-Z]·任意的大写字母
    [a-zA-Z]·任意的字母
    [0-9]任意数字
4. [^] 表示除了
   [^x] 除了x
5. . 表示除了换行外的任意字符
6.在正则表达式中使用\作为转义字符
7.其他的字符集
    \w 任意的单词字符 [A-Za-z0-9_]
    \W 除了单词字符 [^A-Za-z0-9_]
    \d 任意数字 [0-9]
    \D 除了数字 [^o-9]
    \s 空格
    \S 除了空格
    \b 单词边界
    \B 除了单词边界
8.开头和结尾
    ^ 表示字符串的开头
    $ 表示字符串的结尾
a.使用字面量来创建正则表达式
语法: 
		var变量=/正则表达式/匹配模式B 
var reg=new RegExp("a","i");
reg = /a/i;
console.log(reg.test("abc"));
b.检查一个字符串中是否含有 . , . 表示任意字符
在正则表达式中使用\作为转移字符
    \. 表示. 
    \\ 表示\
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,如果要使用\则需要使用\\来代替
var reg=/\./;
var reg1=new RegExp("\\\\");
console.log(reg1.test("1@#\\"));
c.创建一个正则表达式,检查一个字符串中是否含有a或b,使用|表示或者的意思
reg = /a|b/;
d.创建一个正则表达式,检查一个字符串中是否含有字母:reg=/[a-z]/;(undefined编码中含有6个非字母的符号)
[ ] 里的内容也是或的关系
[ab]==a|b
[a-z] 任意的小写字母
[A-Z] 任意的大写字母
[A-z] 任意的字母
[0-9] 任意数字
reg = /[a-z]/;
//检查一个字符串中是否含有abc或adc或aec
reg = /a[bde]c/
e.[^]除了
reg = /[^ab]/
reg = /[^0-9]/
console.log(reg.test("123"));
f.检查一个字符串是否含有单词
reg=/\bchild\b/;
console.log(reg.test("hello children"));
g.检查一个字符串是否以a开头
^表示开头
$表示结尾
如果在正则表达式中同时使用^$则要求字符串必须完全符号正则表达式
reg=/^a/
reg=/^[0-9]/
reg=/c$/
reg=/^a|a$/
reg=/^a.*a$/ //以a开头且以a结尾
console.log(reg.test("abbbbc"));
reg=/^a$/   //只匹配字母a,完全匹配,要求字符串必须和正则完全一致
console.log(reg.test('a'));
h.去除掉字符串中的空格
//接受一个用户的输入
//var name=prompt("请输入你的用户名:");

var str="     he   llo     ";
console.log(str);
//去除掉字符串中前后的空格
console.log(str.replace(/\s/g,""));
//去除开头的空格
console.log(str.replace(/^\s*/,""));
//去除结尾的空格
console.log(str.replace(/\s*$/,""));
//匹配开头和结尾的空格
console.log(str.replace(/^\s*|\s*$/,""));

3).正则表达式的量词

-通过量词可以设置一个内容出现的次数
-量词只对它前边的一个内容起作用

- {n}正好出现n次
- {m,n}出现m-n次
- {m, } m次以上
- + 至少一个,相当于{1,}
- * 0个或多个,相当于{0,}
- ? 0个或1L相当于{0,1}
var str="aaaa"
var reg=/aaa/;
reg=/a{3}/;
reg=/(ab){3}/
reg=/ab{3}/
reg=/ab{3}c/
reg=/ab{1,3}c/
reg=/ab{3,}c/
reg=/ab+c/
reg=/ab*c/
reg=/ab?c/
console.log(reg.test(str));

练习:

/* 
创建一个正则表达式用来检查字符串是否是一个合法手机号码
	手机号码的规则:
        1.以1开头
        2.第二位3-9任意数字
        3.三位以后任意数字9个
        	^1 [3-9] [0-9]{9}$
*/  
var phoneStr=prompt("请输入电话号码:");
var phoneReg=/^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phoneStr));
alert(phoneReg.test(phoneStr));
/* 
练习:
	将dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd中的号码提取出来
*/
let num="dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd"
let re0=/1[3-9]\d{9}/g
re0=/(1[3-9]\d)\d{4}(\d{4})/g
let resu
while (resu=re0.exec(num)) {
    //console.log(resu[0],resu[1],resu[2]);
    console.log(resu[1]+"****"+resu[2]);
} 
re= /^1[3-9]\d{9}/
console.log(re.test("13456789042"));


10.字符串与正则表达式相关的方法

①.split()

​ -可以将一个字符串拆分为一个数组
​ -方法中可以传递一个正则表达式作为参数,这样就法将会根据正则表达式去拆分字符串
​ -这个方法即使不指定全局匹配,也会全都拆分

var str="1a2s3d4c5v6b7b8n9m";
//根据任意字母来将字符串拆分
console.log(str.split(/[a-z]/));

②.search()

​ -可以搜索字符串中是否含有指定内容
​ -如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
​ -它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
​ -search()只会查找第一个,即使设置全局匹配也没用

str="hello abc hello abc adc afc"
console.log(str.search(/a[bef]c/));		//6
③.match()

​ -可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
​ -默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
​ 我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
​ 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
​ -match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果

matchAll()

​ -根据正则表达式去匹配字符串中符合要求的内容(必须设置g 全局匹配)
​ -它返回的是一个迭代器

str="1a2s3d4c5v6b7b8n9mA10D11";
str="dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd"
let result=str.matchAll(/1[3-9]\d{9}/g)
for (let item of result) {
 console.log(item);
}
console.log(str.match(/[a-z]/g));
console.log(str.match(/[a-z]/ig));
console.log((str.match(/[a-z]/g))[0]);

④.replace()

​ -可以将字符串中指定内容替换为新的内容-参数:
​ 1.被替换的内容,可以接受一个正则表达式作为参数
​ 2.新的内容
​ -默认只会替换第一个

console.log(str.replace(/a/gi,"@_@"));
console.log(str.replace(/[a-z]/gi,""));

表达式作为参数,然后会根据正则表达式去检索字符串
​ -search()只会查找第一个,即使设置全局匹配也没用

str="hello abc hello abc adc afc"
console.log(str.search(/a[bef]c/));		//6
③.match()

​ -可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
​ -默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
​ 我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
​ 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
​ -match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果

matchAll()

​ -根据正则表达式去匹配字符串中符合要求的内容(必须设置g 全局匹配)
​ -它返回的是一个迭代器

str="1a2s3d4c5v6b7b8n9mA10D11";
str="dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd"
let result=str.matchAll(/1[3-9]\d{9}/g)
for (let item of result) {
 console.log(item);
}
console.log(str.match(/[a-z]/g));
console.log(str.match(/[a-z]/ig));
console.log((str.match(/[a-z]/g))[0]);

[外链图片转存中…(img-JRsSA72t-1683890217745)]

④.replace()

​ -可以将字符串中指定内容替换为新的内容-参数:
​ 1.被替换的内容,可以接受一个正则表达式作为参数
​ 2.新的内容
​ -默认只会替换第一个

console.log(str.replace(/a/gi,"@_@"));
console.log(str.replace(/[a-z]/gi,""));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值