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})$/; |
这对您指定的情况是有效的:
emailRegularExpression.test("[email protected]") 对emailRegularExpression.test("[email protected]") 错误emailRegularExpression.test("[email protected]") :假(特殊字符)