Проверка того, что загруженный файл содержит только простой текст - PullRequest
4 голосов
/ 24 февраля 2010

У меня есть приложение ASP.NET MVC, которое позволяет пользователю загружать файл, который должен содержать только простой текст.

Я ищу простой способ проверить, что файл действительно содержит только текст.

Для моих целей я рад определить текст как любой из символов, которые я вижу напечатанными на моей клавиатуре QWERTY GB .

Бизнес-правила означают, что мой загруженный файл не будет содержать акцентированных символов, поэтому не имеет значения, если код принимает или отклоняет их.

Подходы, которые пока не сработали:

  • Проверка типа контента; не хорошо, так как это зависит от расширения файла
  • Проверка char.IsControl для каждого символа; ничего хорошего, поскольку файл может содержать символы (|), которые считаются управляющими символами

Я бы предпочел не использовать длинный шаблон Regex, чтобы заставить это работать.

1 Ответ

2 голосов
/ 24 февраля 2010

Звучит так, как вы хотите Символы ASCII 32-126 плюс несколько коэффициентов и заканчивается как 9 (горизонтальная табуляция), возврат каретки и перевод строки и т. Д ..

Я бы лучше не использовал длинное регулярное выражение шаблон, чтобы заставить это работать.

Пока это не означает «вообще нет регулярных выражений», вы можете использовать принятый ответ из этого вопроса о переполнении стека (я добавил горизонтальный символ табуляции к оригиналу):

^([^\x09\x0d\x0a\x20-\x7e\t]*)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...