如何通过正则表达式屏蔽输入? 1112223333或1112223333444

时间:2012-10-16 21:51:12

标签: c# regex visual-studio-2010 xaml

这是在xaml文件中。

我需要用正则表达式掩盖一个框的输入。

我需要它包含10个数字或13个数字(按顺序,没有符号)

我有:

<... ValidationRegEx="\d{13}" />

工作正常,但是当我想添加一个十英寸的面具时,它会破坏:

<... ValidationRegEx="\d{13} | \d{10}" />

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

我应该删除空格,如下所示:

ValidationRegEx = "\d{13}|\d{10}"

否则,空格字符将成为您匹配的字符串的一部分(即13个数字后跟空格,或空格后跟10个数字)。

您也可以尝试简化表达式:

ValidationRegEx = "\d{10}\d{3}?"

(需要十加三个可选数字)。

答案 1 :(得分:0)

这对我有用:

< ... RegEx="\b\d{10}\b|\b\d{13}\b" ... />

这表示“找到一个包含10位数的整个单词或找到一个包含13位数的整个世界”。

正则表达式前后的\ b表示找到整个单词。

查看本教程网站,它帮助我回答了我自己的问题:

http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial

答案 2 :(得分:0)

                              ┌─────┬─ 10 or 13 digits
                              ↓     ↓
 ValidationRegEx = "(?<!\d)\d{10}\d{3}?(?!\d)" 
                       ↑                 ↑
                       │                 └─ negative lookahead to ensure 
                       │                    there is no other digit ahead
                       │
                       └─ negative lookbehind to ensure
                          there is no other digit behind