正则表达式是一种强大的文本处理工具,用于匹配字符串中的特定模式。在 JavaScript 中,正则表达式被广泛用于字符串的搜索、替换、验证等操作。正则表达式>简介正则表达式用来定义一个规则通过这个规则计算机可以检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。 正则表达式也是JS中的一个对象,所以要使用正则表达式,需要先创建正则表达式的对象。创建 new RegExp() // new RegExp() 可以接收两个参数(字符串) 1.正则表达式 2.匹配模式 let reg = new RegExp("a", "i") // 通过构造函数来创建一个正则表达式的对象 let reg = /a/ilet reg = new RegExp("a", "i") 和 let reg = /a/i 这两行代码定义了一个正则表达式 reg,它匹配字母 "a",并且忽略大小写(由于使用了 "i" 标志)。字面量 xx = /?/// 使用字面量来创建正则表达式:/正则/匹配模式 let reg = /\w/let reg = /\w/ 这行代码将 reg 重新定义为匹配任何字母、数字或下划线的正则表达式(\w 是一个字符类)。let reg = new RegExp("\\w") reg = new RegExp("a") // /a/ 表示,检查一个字符串中是否有areg = new RegExp("\\w") 这行代码将 reg 重新定义为匹配任何字母、数字或下划线的正则表达式。在 JavaScript 中,字符串中的反斜杠是一个转义字符,所以我们需要使用两个反斜杠 \\ 来表示一个实际的反斜杠。因此,"\\w" 在正则表达式中表示 \w,它是一个字符类,匹配任何字母、数字或下划线。reg = new RegExp("a") 这行代码将 reg 重新定义为匹配字母 "a" 的正则表达式。// 通过正则表达式检查一个字符串是否符合规则 let str = "a" let result = reg.test(str) // true result = reg.test("b") // false result = reg.test("abc") // true result = reg.test("bcabc") // true reg = /a/ console.log(result);let str = "a" 这行代码定义了一个字符串 str,内容为 "a"。let result = reg.test(str) 这行代码使用正则表达式 reg 测试字符串 str,并将结果存储在 result 中。由于 reg 最后被定义为匹配 "a",所以 result 为 true。result = reg.test("b") 这行代码测试字符串 "b",由于 "b" 不匹配 "a",所以 result 为 false。result = reg.test("abc") 这行代码测试字符串 "abc",由于字符串中包含 "a",所以 result 为 true。result = reg.test("bcabc") 这行代码测试字符串 "bcabc",由于字符串中包含 "a",所以 result 为 true。reg = /a/ 这行代码将 reg 重新定义为匹配字母 "a" 的正则表达式。console.log(result) 这行代码输出 result 的值。由于前面的测试结果是 true,所以控制台将输出 true。>语法大部分字符都可以直接写let re = /ab/ let result = re.test('abc')| 在正则表达式中表示或let re = /abc|bcd/ let result = re.test('c') //false[] 表示或(字符集)[a-z] 任意的小写字母[A-Z] 任意的大写字母[a-zA-Z] 任意的字母[0-9]任意数字let re = /[ab]/ re = /[a-z]/i //匹配模式i 表示忽略大小写 let result = re.test('c') //false let result = re.test('a') //true[^] 表示除了 [^x] 除了xlet re = /[^a-z]/ //匹配包含小写字母以外内容的字符串 let result = re.test('c') //false let result = re.test('aH') //true . 表示除了换行外的任意字符let re = /./ let result = re.test('aH') //true在正则表达式中使用\作为转义字符let re = /\./ //表示只匹配. let result = re.test('c') //false其他的字符集\w 任意的单词字符 [A-Za-z0-9_]\W 除了单词字符 [^A-Za-z0-9_]\d 任意数字 [0-9]\D 除了数字 [^0-9]\s 空格\S 除了空格\b 单词边界\B 除了单词边界开头和结尾 ^ 表示字符串的开头let re = /^a/ //表示匹配开始位置的a let result = re.test('c') //false$ 表示字符串的结尾let re = /a$/ //表示匹配结束位置的a re = /^a$/ //完全匹配,只匹配字母a,要求字符串必须和正则完全一致 let result = re.test('a') //true console.log(result)>量词{m} 正好m个let re = /a{3}/ re = /^ab{3}$/ //实际上匹配的是 abbb re = /^(ab){3}$/ let result = re.test("aaa") // true{m,} 正少m个let re = /^(ab){1,}$/ {m,n} 正少m-n个let re = /^(ab){1,3}$/ + 一个以上,相当于{1,}let re = /^ba+$/ * 任意数量let re = /^ba*$/ ? 0-1次,相当于{0,1}let re = /^ba?$/ >exec方法获取字符串中符合正则表达式的内容 g表示全局匹配let str = "abcaecafcacc" // 提取出str中符合axc格式的内容 // g表示全局匹配 let re = /a(([a-z])c)/ig let result = re.exec(str) // console.log(result) while(result){ console.log(result[0], result[1], result[2]) result = re.exec(str) }小练习/* dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd 用自己的语言来把描述出来 1 3 501789087 1 3到9之间 任意数字 x 9 */ let re = /1[3-9]\d{9}/g re = /(1[3-9]\d)\d{4}(\d{4})/g let str = "dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd" let result while (result = re.exec(str)) { // console.log(result[0], result[1], result[2]) console.log(result[1] + "****" + result[2]) } re = /^1[3-9]\d{9}$/ console.log(re.test("13456789042"))>字符串split( ) 根据正则表达式对一个字符串拆分let str = "孙悟空abc猪八戒abc沙和尚" let result = str.split(/a[bc]c/) console.log(result) // (3) ['孙悟空', '猪八戒', '沙和尚']search( ) 搜索第一次在符合正则表达式的内容出现的位置let str = "dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd" let result = str.search(/1[3-9]\d{9}/) console.log(result) // 6replace( ) 根据正则表达式替换字符串中的指定内容let result = str.replace(/1[3-9]\d{9}/g, "哈哈哈")match( ) 根据正则表达式去匹配字符串中符合要求的内容let str = "dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd" let result = str.match(/1[3-9]\d{9}/g) console.log(result) // (3) ['13715678903', '13457890657', '13811678908']matchAll() 根据正则表达式去匹配字符串中符合要求的内容(必须设置g 全局匹配)它返回的是一个迭代器let result = str.matchAll(/1[3-9]\d{9}/g) for(let item of result){ console.log(item) }>垃圾回收和生活一样,生活时间长了以后会产生生活垃圾。程序运行一段时间后也会产生垃圾。在程序的世界中,什么是垃圾?如果一个对象没有任何的变量对其进行引用,那么这个对象就是一个垃垃圾对象的存在,会严重的影响程序的性能在JS中有自动的垃圾回收机制,这些垃圾对象会被解释器自动回收,我们无需手动处理对于垃圾回收来说,我们唯一能做的事情就是将不再使用的变量设置为nulllet obj = {name:"孙悟空"} let obj2 = obj obj = null obj2 = null