2015-07-29 3 views
1

у меня есть это регулярное выражение в моделиРегулярное выражение закодирован неправильно в другом сервере

[RegularExpression("^([^/\\*?:\"<>|]*)$", ErrorMessage = "Please do not use the following characters: \\/:*?\"<>|")] 
[Display(Name = "Last Name")] 
public string LastName { get; set; } 

Глядя на HTML наших сайтов в браузере:

в нашем реальном сервере:

<input data-val="true" data-val-regex="Please do not use the following characters: \/:*?&quot;&lt;&gt;|" data-val-regex-pattern="^([^/\*?:&quot;&lt;&gt;|]*)$" id="LastName" name="LastName" type="text" value="Foo"> 

и на нашем промежуточном сервере:

<input data-val="true" data-val-regex="Please do not use the following characters: \/:*?"<>|" data-val-regex-pattern="^([^/\*?:"<>|]*)$" id="LastName" name="LastName" type="text" value="Foo"> 

На нашем промежуточном сервере регулярное выражение работает отлично. Как появилось в нашем реальном сервере регулярное выражение?

Пользователь вводит фамилию, но не может быть принят, поскольку буквы q, u, o, t, l, g стали частью проверки регулярных выражений. Файлы, развернутые на промежуточных и живых серверах, полностью аналогичны.

Есть ли настройка в IIS или на сервере, которая могла бы изменить кодировку?

ответ

0

Не могли бы вы попробуете Unicode escapes?

Вы Regex должны выглядеть как

[RegularExpression("^([^/\\*?:\\u0022\\u003c\\u003e|]*)$", .... 
+0

спасибо за Ваш ответ! после изучения этой проблемы, я узнал, что обновление Windows вызвало ошибку. Но я не могу отслеживать, какое обновление оно есть. Думая, что в конечном итоге это обновление вызовет ошибку в будущем, я решил изменить код с вашим предложением и развернуть снова. Благодаря! – Hazel

Смежные вопросы