2012-03-06 113 views
10

嗨,我使用剃刀,并试图使用正则表达式来验证此电子邮件地址验证功能用剃刀页

function validateEmail(txtEmail){ 
    var a = document.getElementById(txtEmail).value; 
    var filter = /^[a-zA-Z0-9_.-][email protected][a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/; 
    if(filter.test(a)){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
}​ 

但由于正则表达式中有一个@符号剃刀认为这对正则表达式验证电子邮件地址它的一部分语法,并给我一个错误。

反正有避免以确保剃刀忽略@符号在JavaScript

感谢。

+0

当有人关闭的JavaScript在您的网站会出现什么情况? – 2012-03-06 19:06:04

+0

请参阅[剃刀视图引擎中的Escape @ character](http://stackoverflow.com/questions/3626250/escape-character-in-razor-view-engine)。或者,您可以将Javascript放在单独的文件中。 – oleksii 2012-03-06 19:09:07

回答

9

的Unicode可以这样工作

string filter = "/^[a-zA-Z0-9_.-]+\\u0440[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/"; 

或者在剃刀@@是正常的@符号,它应该在你的JavaScript运行。

string filter = "/^[a-zA-Z0-9_.-][email protected]@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/"; 
0

尝试,这可能是帮你

function validateEmail(email) { 
    var re = /^[_a-z0-9-A-Z-]+(\.[_a-z0-9-A-Z-]+)*@[a-z0-9-A-Z-]+(\.[a-z0-9-A-Z-]+)*(\.[a-z]{2,4})$/; 
    return re.test(email); 
} 
0

是很普通的检查电子邮件的格式是否有效。要验证电子邮件地址,我们需要使用正则表达式。在MVC剃须刀中,我们应该使用@@符号来执行验证。 MVC razor:

VAR emailRegEx =/^(([^ <>()[] \;:\ S @@ \“] +([^ <>()[] \;:\小号@@ \ “] +)*)|(\”。+ \“))@@(([0-9] {1,3} [0-9] {1,3} [O- 9] {1,3} [0-9] {1,3}])|(([A-ZA-Z-0-9] +)+ [A-ZA-Z] {2,}) )$ /;

正常的HTML:

对于正常我们应该用@符号来执行验证

VAR emailRegEx =/^(([^ <>()[] \;:\ S @ \” ] +(。[^ <>()[] \。,;:\ s @ \“] +)*)|(\”。+ \“))@(([[0-9] {1,3 } [0-9] {1,3} [0-9] {1,3} [0-9] {1,3}])|。。。(([A-ZA-Z-0-9] +)+ [A-ZA-Z] {2,}))$ /。

更多详情,请访问