如何将C#正则表达式转换为打字稿正则表达式?

时间:2018-09-12 14:55:34

标签: c# regex angular typescript

我是angular的新手,我有c#电子邮件正则表达式,我不知道c#regex和打字稿正则表达式有什么区别。它无法正常工作。谢谢!

正则表达式:

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

电子邮件示例: adasd457@sdjf45.idie

1。不允许特殊字符

2。不允许在后面输入数字。值(ex-sdf@sadf.co333)

1 个答案:

答案 0 :(得分:3)

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

@

要将其用作JavaScript正则表达式,请将其传递给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的文字正则表达式语法(不转义反斜杠:

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})$");

这可以按照您指定的情况进行操作:

  • 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})$/; :是
  • emailRegularExpression.test("adasd457@sdjf45.idie"):错误
  • emailRegularExpression.test("ex-sdf@sadf.co333"):假(特殊字符)