跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 前端正则表达式的规则是不是变更过了?
未分類
9 2 月 2020

前端正则表达式的规则是不是变更过了?

前端正则表达式的规则是不是变更过了?

資深大佬 : igoist 21

MDN 上对于 RegExp 的 Description 底部如此写到:

For example, the following are equivalent:

let re = /w+/ let re = new RegExp(‘w+’)

起因是今天修了个 bug,项目中某页面有一堆按钮

这些按钮的类名都类似于 goto-aaa goto-bbb goto-ccc

写于 16 年的代码是通过 btn.className.match(/goto-(S+)/)[1] 来匹配获取到 aaa 、bbb 、ccc

以前应该是没问题的,如今就同 ‘goto-aaa’.match(/goto-(S+)/) 匹配结果为 null 一样,会直接报错

调整为 ‘goto-aaa’.match(/goto-(S+)/)[1] 就可以解决问题

但还是挺好奇的,想看看有没有经常在用在关注正则这块的大佬帮忙解解惑,是不是真的有变更,以及要是变更了,

除 和 外,还有哪些变更,在哪里可以看到,谢谢!

大佬有話說 (3)

  • 資深大佬 : autoxbc

    Web 一向是渐进的,不会有破坏性的变更

    主贴的
    For example, the following are equivalent:
    let re = /w+/ let re = new RegExp(‘w+’)

    MDN 实际是这么写的
    For example, the following are equivalent:
    let re = /w+/
    let re = new RegExp(‘\w+’)

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

    >> 写于 16 年的代码是通过 btn.className.match(/goto-(S+)/)[1] …
    >> 调整为 ‘goto-aaa’.match(/goto-(S+)/)[1] 就可以解决问题

    这两个正则不是完全一样?

  • 主 資深大佬 : igoist

    @autoxbc

    对的,这俩是一样的,我本来就是复制过来有换行,发出来之后变了空格

    不好意思的是上面被我贴错了

    原来的代码一直都是 btn.className.match(/goto-(\S+)/)[1]

  • 主 資深大佬 : igoist

    @autoxbc

    “除 和 外” 其实我发的时候也是一个但斜杠 还有一个双斜杠,文本被过滤了,当时没考虑到,发完也没仔细看,闹笑话了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具