如何在JavaScript中将长正则表达式拆分为多行?

如何在JavaScript中将长正则表达式拆分为多行?,第1张

如何在JavaScript中将长正则表达式拆分为多行?

您可以将其转换为字符串并通过调用创建表达式

new RegExp()

var myRE = new RegExp (['^(([^<>()[]\.,;:\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,}))$'].join(''));

笔记:

  1. 表达式文字 转换为字符串时,您需要对所有反斜杠进行转义,因为在评估字符串文字时会消耗反斜杠。(有关更多详细信息,请参见Kayo的评论。)
  2. RegExp
    接受修饰符作为第二个参数

/regex/g
=>
new RegExp('regex', 'g')

[ 添加ES20xx (标记模板)]

注意:

  • 这里缺点是,你不能在正则表达式字符串使用纯空格(经常使用
    s
    s+
    s{1,x}
    t
    n
    等)。
(() => {  const createRegExp = (str, opts) =>     new RegExp(str.raw[0].replace(/s/gm, ""), opts || "");  const yourRE = createRegExp`    ^(([^<>()[]\.,;: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,}))$`;  console.log(yourRE);  const anotherLongRE = createRegExp`    (byyyyb)|(bmb)|(bdb)|(bhb)|(bmib)|(bsb)|(bmsb)|    (bwdb)|(bmmb)|(bddb)|(bhhb)|(bMIb)|(bSb)|(bMSb)|    (bMb)|(bMMb)|(bdowb)|(bDOWb)    ${"gi"}`;  console.log(anotherLongRE);})();


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5566498.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存