COLD TOLD
COLD TOLD

Reputation: 13599

Validating email addresses using regular expression with Razor syntax

I am using Razor syntax and trying to use a regular expression to validate email address; here is the validation function:

function validateEmail(txtEmail){
   var a = document.getElementById(txtEmail).value;
   var filter = /^[a-zA-Z0-9_.-]+@[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;
    }
}​

but since the regular expression has an @ sign, Razor thinks it's part of it syntax and gives me an error.

Is there anyway to avoid to make sure razor disregards the @ sign in JavaScript ?

Upvotes: 11

Views: 21358

Answers (3)

Mohamed Rasik
Mohamed Rasik

Reputation: 168

It is common to check the format of the email is valid or not. To validate email address we need to use regular expression. In MVC razor we should use @@ symbol to perform validation.

MVC Razor syntax:

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

Normal HTML:

For normal we should use @ symbol to perform validation

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

Upvotes: 0

demir
demir

Reputation: 701

try this may be help you

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

Upvotes: 0

bbedward
bbedward

Reputation: 6478

Unicode may work like this

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

Alternatively in razor @@ is a normal @ symbol, it should work in your javascript.

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

Upvotes: 13

Related Questions