Предотвращение кириллицы / грека / китайца в строке - C# 4.0
У нас есть система (использующая ASP.NET C# 4.0), которая поддерживает греческие, кириллические и китайские символы. Но сторонняя система, похоже, не работает правильно. Чтобы избежать проблем при вводе данных для этой сторонней системы, я хочу ограничить текстовые поля, чтобы они принимали только английские или акцентированные символы, но возвращали ошибку проверки для других символов.
Как я могу сделать это? Кажется, я могу использовать регулярное выражение в соответствии с \p{Latin}, но C#, кажется, не поддерживает это из моего опыта, так как я получаю Unknown property 'Latin'
ошибка.
1 ответ
В.NET свойства блока Unicode должны быть записаны с Is...
:
[\p{IsGreek}\p{IsCyrillic}...]
Подобный шаблон может обнаружить все оскорбительные символы в вашем случае. Если вы просто хотите исключить все, кроме Latin
Вы могли бы сделать что-то вроде:
[^\p{IsBasicLatin}\p{IsLatin-1Supplement}\p{IsLatinExtended-A}\p{IsLatinExtended-B}]
Это охватывает все кодовые точки до U+024F
,
Список поддерживаемых имен блоков см. В разделе MSDN.