CoffeeScript 使用 Heregexes

🌙
手机阅读
本文目录结构
axihe

使用 Heregexes

问题

你需要写一个复杂的正则表达式。

解决方案

使用 CoffeeScript 的“heregexes”——可以忽视内部空白字符并可以包含注释的扩展正则表达式。

pattern = ///
  ^\(?(\d{3})\)? # 采集区域代码,忽略可选的括号
  [-\s]?(\d{3})  # 采集前缀,忽略可选破折号或空格
  -?(\d{4})      # 采集行号,忽略可选破折号
///
[area_code, prefix, line] = "(555)123-4567".match(pattern)[1..3]
# => ['555', '123', '4567']

讨论

通过打破复杂的正则表达式和注释重点部分,它们变得更加容易去辨认和维护。例如,现在这是一个相当明显的做法去改变正则表达式以容许前缀和行号之间存在可选的空间。

heregexes 中的空白字符

空白字符在 heregexes 中是被忽视的——所以如果要为 ASCII 空格匹配字符,你应该怎么做呢?

我们的解决方案是使用 @\s@字符组,它能够匹配空格,制表符和换行符。假如你只想匹配一个空格,你需要使用、\X20 来表示字面上的 ASCII 空格。

axihe

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili 和抖音。

关注我: Github / 知乎

如果你加我的私人微信,麻烦写上您的 称呼,所在地区,职业,方便我备注,谢谢


本站的微信公众号

阿西河前端教程

Anbang

安邦的私人微信

微信号: yaolushan

Anbang

Bilibili(B站)

朱安邦

Anbang