如何在本地化应用程序时处理验证(RegEx)

时间:2016-06-13 22:16:34

标签: c# regex wpf mvvm localization

我们决定通过我们的项目支持其他语言,并开始本地化。

在某些文本框中,我们使用文本验证,其中我们仅允许某些字符,例如仅包含字母到z或某些字符的字母。当我们在其他语言操作系统(如希伯来语或印地语)中运行我们的应用程序时,由于验证,用户将无法在这些文本框中输入任何文本。

我们如何制定这些规则本地化\全球化?如何在本地化应用程序时处理这些类型的场景

1 个答案:

答案 0 :(得分:0)

使用{L}和正则表达式来实现所有语言的必要验证。

要匹配任何语言的任何字母,请使用:

\p{L}

如果您还想匹配数字:

[\p{L}\p{Nd}]+

`\p{L}` ... matches a character of the unicode category letter.
            it is the short form for [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
              \p{Ll} ... matches lowercase letters. (abc)
              \p{Lu} ... matches uppercase letters. (ABC)
              \p{Lt} ... matches titlecase letters. 
              \p{Lm} ... matches modifier letters.
              \p{Lo} ... matches letters without case. (中文)

\p{Nd} ...匹配unicode类别十进制数字的字符。

只需将^[a-zA-Z0-9\s]+$替换为^[\p{L}0-9\s]+$