我们有一个支持希腊语,西里尔语,汉字的系统(使用ASP.NET C#4.0)。但第三方系统似乎无法正常工作。为避免在输入此第三方系统的数据时出现问题,我希望将文本字段限制为仅接受英文或带重音符的字符,但会为其他字符返回验证错误。
我怎样才能做到这一点?我似乎可以使用\ p {Latin}的正则表达式,但是根据我的经验,C#似乎不支持这一点,因为我收到Unknown property 'Latin'
错误。
答案 0 :(得分:3)
在.NET中,需要使用Is...
:
[\p{IsGreek}\p{IsCyrillic}...]
这样的模式会检测您案例中的所有违规字符。如果您只想排除除Latin
之外的所有内容,则可以执行以下操作:
[^\p{IsBasicLatin}\p{IsLatin-1Supplement}\p{IsLatinExtended-A}\p{IsLatinExtended-B}]
这涵盖了最多U+024F
的所有代码点。
有关支持的块名称列表see MSDN。