将 JavaScript 正则表达式转换为 asp.net vb

Convert javascript regex to asp.net vb

本文关键字:asp net vb 转换 JavaScript 正则表达式      更新时间:2023-09-26

我正在使用以下正则表达式来验证javascript中的电子邮件地址文本框:-

var regex = /^['_]*([a-z0-9]+('.|'_*)?)+@([a-z][a-z0-9'-]+('.|'-*'.))+[a-z]{2,6}$/i;

我还需要在 asp.NET(4) VB 站点的后端运行它以防止注入。

当我将其转换为我认为应该用于 .NET 并在设置为使用 .NET 和 VB http://myregextester.com/中运行它时,它会传递:-

^[_]*([a-z0-9]+(.|_*)?)+@([a-z][a-z0-9'-]+(.|-*.))+[a-z]{2,6}$

但是,当我将其放入代码中时,它不起作用:-

If (Not Regex.IsMatch(theEmail, "^[_]*([a-z0-9]+(.|_*)?)+@([a-z][a-z0-9'-]+(.|-*.))+[a-z]{2,6}$")) Then                    
    Return False
Else
    Return True
End If
任何

有关转换为VB的帮助将不胜感激。

'-替换为-

^[_]*([a-z0-9]+(.|_*)?)+@([a-z][a-z0-9-]+(.|-*.))+[a-z]{2,6}$

并且还设置了RegexOptions.IgnoreCase.由于/i已设置。

这里i表示IgnoreCase

您的代码将是

If (Not Regex.IsMatch(theEmail, "^[_]*([a-z0-9]+(.|_*)?)+@([a-z][a-z0-9-]+(.|-*.))+[a-z]{2,6}$", RegexOptions.IgnoreCase)) Then                    
    Return False
Else
    Return True
End If
似乎正

则表达式之间的唯一区别是原始正则表达式使用文字点'.而第二个使用点.元字符。元字符将匹配任何内容,文字点将只匹配点字符。

试着把逃生放回点上。

你的两个正则表达式,

 ^ ['_]* 
 (
      [a-z0-9]+ 
      ( '. | '_* )?
 )+
 @
 (
      [a-z] [a-z0-9'-]+ 
      ( '. | '-*'. )
 )+
 [a-z]{2,6} $

新增功能

 ^ [_]* 
 (
      [a-z0-9]+ 
      ( . | _* )?
 )+
 @
 (
      [a-z] [a-z0-9'-]+ 
      ( . | -*. )
 )+
 [a-z]{2,6} $