x(?=y)、x(?!y)、x*?、x+?

Love The Way You Lie 2023-06-07 05:46 76阅读 0赞
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. </body>
  9. <script type="text/javascript">
  10. /*
  11. 正则表达式中特殊字符的含义(数量词(Quantifiers)):
  12. x(?=y) :只有当 x 后面紧跟着 y 时,才匹配 x。(x后面是y)
  13. x(?!y) :只有当 x 后面不是紧跟着 y 时,才匹配 x。(x后面没有y)
  14. */
  15. //运用:你现在想在aaaabab选择b前面的a
  16. const re = /\w(?=b)/g;
  17. const text = 'aaaabab';
  18. console.log(text.match(re));//["a", "a"]
  19. //突然你又想在aaaabab选择不是b前面的a
  20. const re2 = /\w(?!b)/g;
  21. const text2 = 'aaaabab';
  22. console.log(text2.match(re2));//["a", "a", "a", "b", "b"]
  23. /*
  24. 正则表达式中特殊字符的含义(数量词(Quantifiers)):
  25. x*?、x+? : * 和 + 一样匹配前面的模式 x,然而匹配是最小可能匹配。
  26. */
  27. //贪婪匹配
  28. const re3 = /x+/g;
  29. const text3 = 'xxxx';
  30. console.log(text3.match(re3));//["xxxx"]
  31. //非贪婪匹配
  32. const re4 = /x+?/g;
  33. const text4 = 'xxxx';
  34. console.log(text4.match(re4));//["x", "x", "x", "x"]
  35. const re5 = /x{1,4}?/g;//能一个绝对不会四个
  36. const text5 = 'xxxx';
  37. console.log(text5.match(re5));//["x", "x", "x", "x"]
  38. /*
  39. (难度较大)将100000000变成科学计数法,100.000.000
  40. */
  41. let text6 = '100000000';
  42. const re6 = /(?=(\B)(\d{3})+$)/g;
  43. console.log(text6.replace(re6, '.'));
  44. </script>
  45. </html>

发表评论

表情:
评论列表 (有 0 条评论,76人围观)

还没有评论,来说两句吧...

相关阅读