Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using javascript regex containing '@' in razor

Tags:

I am performing email address validation with javascript in a razor view page. The regex I am going to use is similar to the one proposed at Validate email address in JavaScript?

However, because the regex contains an '@' character, I am getting parser error when try to run the web app.

my regex looks like

/^...otherpart @* ... other part$/

I tried to add an '@' character to make the in the origin regex ... @@* ..., this eliminated the compilation error but seems to make the regex stops working. (we have used it in another web app that does not use razor engine, so I know it works).

Is there any other way to escape the '@' character?

like image 670
Wei Ma Avatar asked Oct 18 '13 03:10

Wei Ma


2 Answers

You can add another @ in front of it to escape @@, try leaving out the quantifer *. If this doesn't seem to work then add <text></text> around the function, it tells Razor to not parse the contents. Alternatively you can put Javascript in a separate file to accomplish your needs.

If for some reason you have multiple @@ in your string, place code blocks ahead @:@@

like image 151
hwnd Avatar answered Oct 06 '22 00:10

hwnd


Put the following inside the regEx instead of @:

@('@')

The above will be rendered to a single @.

Your example will become:

/^...otherpart @('@')* ... other part$/
like image 44
Shadi Namrouti Avatar answered Oct 05 '22 23:10

Shadi Namrouti