index.html 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <script>
  11. //1 扩展运算符
  12. //rest参数对对象的支持
  13. function connect({host,port,name,password,...etc}){
  14. console.log(host)
  15. }
  16. connect({
  17. host:'hi',
  18. port:23,
  19. name:'3',
  20. password:'',
  21. bbb:'',
  22. ccc:'d'
  23. })
  24. //将对象展开
  25. const skillOne = {
  26. a:'222',
  27. b:'ccc'
  28. }
  29. //...skillOne => a:'222',b:'ccc'
  30. const skillTwo = {
  31. d:'ccc'
  32. }
  33. const m = {...skillOne,...skillTwo}
  34. console.log(m)
  35. /**
  36. * 2 正则扩展 -- 命名捕获分组
  37. */
  38. let str = '<a href="http://www.baidu.com">ggg</a>'
  39. //提取url和标签文本
  40. //未命名
  41. const reg = /<a href="(.*)">(.*)<\/a>/
  42. const result = reg.exec(str)
  43. console.log(result)
  44. //已命名
  45. const reg1 = /<a href="(?<url>.*)">(?<text>.*)<\/a>/
  46. const result1 = reg1.exec(str)
  47. console.log(result1)
  48. /**
  49. * 3 正则扩展 -- 反向断言
  50. */
  51. //正向断言
  52. let s1 = 'fksfjsk888fjdskfjslfjiwruo234uuu'
  53. //提取数字 -- 后面234
  54. const reg2 = /\d+(?=u)/
  55. const r1 = reg2.exec(s1)
  56. console.log(r1)
  57. //反向断言 --- 根据前面内容判断
  58. const reg3 = /(?<=o)\d+/
  59. const r2 = reg3.exec(s1)
  60. console.log(r2)
  61. /**
  62. * 4 正则扩展 -- dotAll
  63. * dot . 元字符 除换行符以外的任意单个字符
  64. */
  65. let str3 = `
  66. <ul>
  67. <li>
  68. <a>123</a>
  69. <p>1</p>
  70. </li>
  71. <li>
  72. <a>5345</a>
  73. <p>2</p>
  74. </li>
  75. </ul>`
  76. //const reg4 = /<li>\s+<a>(.*?)<\/a>\s+<p>(.*?)<\/p>/
  77. const reg4 = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/s
  78. const result3 = reg4.exec(str3)
  79. console.log(result3)
  80. </script>
  81. </body>
  82. </html>