如何将C#正则表达式转换为typescript正则表达式?

How to convert C# regex to typescript regex?

我不熟悉Angular,我有C email regex,我不知道C regex和typescript regex之间有什么区别。它工作不正常,提前谢谢

Regex:

1
EmailRegularExpresssion = @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z-])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$";

电子邮件示例:地址:[email protected]

1.不允许特殊字符

2.之后不允许使用数字。值([email protected])


您提供的C代码使用C的逐字字符串语法,这不需要转义反斜杠。要将其转换为普通字符串文字(在C和javascript中相同),可以删除前面的@符号,然后通过在其前面添加另一个反斜杠来转义反斜杠:

1
"^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z-])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$"

要将其用作javascript regex,请将其传递给regexp构造函数:

1
let emailRegularExpression = new RegExp("^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z-])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$");

或者,更好的是,您只需使用javascript的文本regex语法(不需要转义反斜杠:

1
let emailRegularExpression = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z-])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;

这对您指定的情况是有效的: