Reputation: 3165
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?
Upvotes: 21
Views: 18261
Reputation: 934
It's better to use @('@') instead of @@ (not working for me). Example
<input class="form-control" pattern="^[a-zA-Z@('@')]{5,20}$"/>
Upvotes: 0
Reputation: 679
Simply just use double @@
.
It works for me and I think that is the only way.
Upvotes: 0
Reputation: 13278
Put the following inside the regEx instead of @:
@('@')
The above will be rendered to a single @.
Your example will become:
/^...otherpart @('@')* ... other part$/
Upvotes: 16
Reputation: 70732
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 @:@@
Upvotes: 27