【问题标题】:Typescript: How to write long regexp in 2 lines [duplicate]打字稿:如何在 2 行中编写长正则表达式 [重复]
【发布时间】:2016-06-06 15:03:38
【问题描述】:

我使用 tslint,当我在 typescript 中编写长正则表达式时

var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

我收到错误 - 超过 140 的最大行长。

有没有人知道怎么写成两行。我可以通过 hack 做到这一点。但我对这个解决方案并不满意。

    var r1 = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))/;
    var r2 = /@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    var re = new RegExp(r1.source + r2.source);

【问题讨论】:

标签: regex typescript


【解决方案1】:

为什么不使用字符串?

var r1 = "^(([^<>()\[\]\\.,;:\s@\"]+(\.[^<>()\[\]\\.,;:\s@\"]+)*)|(\".+\"))";
var r2 = "@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";
var re = new RegExp(r1 + r2);

RegExp(string) 更容易修改和/或动态生成的正则表达式

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 2019-02-17
    • 2018-01-21
    • 2019-04-25
    • 2015-05-30
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多