JavaScript正则表达式传输程序?
此问题专门针对transpiler或transpiler扩展JavaScript正则表达式传输程序?,javascript,regex,perl,whitespace,transpiler,Javascript,Regex,Perl,Whitespace,Transpiler,此问题专门针对transpiler或transpiler扩展RegExp()is对象创建是。 JavaScript似乎不允许在其正则表达式中使用不敏感的空格。在正则表达式中,是否有JavaScript的transpiler允许来自perl的类似/x的东西 /x和/xx单个“/x”告诉正则表达式解析器忽略大部分内容 既不反斜杠也不在括号内的空白 类。您可以使用它将正则表达式分解为更多 可读部分。此外,“#”字符被视为元字符 引入运行到模式结束分隔符的注释,或 如果图案延伸到下一行,则移动到当前行的
RegExp()
is对象创建是。
JavaScript似乎不允许在其正则表达式中使用不敏感的空格。在正则表达式中,是否有JavaScript的transpiler允许来自perl的类似/x
的东西
/x
和/xx
单个“/x”告诉正则表达式解析器忽略大部分内容
既不反斜杠也不在括号内的空白
类。您可以使用它将正则表达式分解为更多
可读部分。此外,“#”字符被视为元字符
引入运行到模式结束分隔符的注释,或
如果图案延伸到下一行,则移动到当前行的末尾。
因此,这非常类似于普通的Perl代码注释。(你可以
仅当注释前面有结束分隔符时,才将其包含在注释中
用反斜杠,所以要小心!)
这允许您编写类似于
let res = name.match(/^([^\d]*?)(?:\s*[.,]\s*([0-9]+)(?: mo)?)?[.,]?$/);
像这样,
let res = name.match(/
^
([^\d]*?) # name
(?:\s*[.,]\s*([0-9]+)(?: mo)?)? # age, mo
[.,]? # trailing dirt
$
/);
我相信您正在寻找与此完全相同的内容:更新了问题:此问题专门针对transpiler或transpiler扩展。RegExp()is对象创建速度非常慢,每次迭代都会构造RegExp代码>,这将是类似于
persistent_var | |=new RegExp(…)代码>。如果您特别想要一个工具,那么无论如何这都是离题的。@ikegami每次遇到该模式都会产生运行时编译成本,这是相当可观的。不,成本只发生一次。