1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- //1 扩展运算符
- //rest参数对对象的支持
- function connect({host,port,name,password,...etc}){
- console.log(host)
- }
- connect({
- host:'hi',
- port:23,
- name:'3',
- password:'',
- bbb:'',
- ccc:'d'
- })
- //将对象展开
- const skillOne = {
- a:'222',
- b:'ccc'
- }
- //...skillOne => a:'222',b:'ccc'
- const skillTwo = {
- d:'ccc'
- }
- const m = {...skillOne,...skillTwo}
- console.log(m)
-
- /**
- * 2 正则扩展 -- 命名捕获分组
- */
- let str = '<a href="http://www.baidu.com">ggg</a>'
- //提取url和标签文本
- //未命名
- const reg = /<a href="(.*)">(.*)<\/a>/
- const result = reg.exec(str)
- console.log(result)
- //已命名
- const reg1 = /<a href="(?<url>.*)">(?<text>.*)<\/a>/
- const result1 = reg1.exec(str)
- console.log(result1)
- /**
- * 3 正则扩展 -- 反向断言
- */
- //正向断言
- let s1 = 'fksfjsk888fjdskfjslfjiwruo234uuu'
- //提取数字 -- 后面234
- const reg2 = /\d+(?=u)/
- const r1 = reg2.exec(s1)
- console.log(r1)
- //反向断言 --- 根据前面内容判断
- const reg3 = /(?<=o)\d+/
- const r2 = reg3.exec(s1)
- console.log(r2)
- /**
- * 4 正则扩展 -- dotAll
- * dot . 元字符 除换行符以外的任意单个字符
- */
- let str3 = `
- <ul>
- <li>
- <a>123</a>
- <p>1</p>
- </li>
- <li>
- <a>5345</a>
- <p>2</p>
- </li>
- </ul>`
- //const reg4 = /<li>\s+<a>(.*?)<\/a>\s+<p>(.*?)<\/p>/
- const reg4 = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/s
- const result3 = reg4.exec(str3)
- console.log(result3)
- </script>
- </body>
- </html>
|