7

这是在一个 xaml 文件中。

我需要用正则表达式屏蔽框的输入。

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

我有 :

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

效果很好,但是当我想在其中添加十个掩码时,它会中断:

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

有任何想法吗?

4

3 回答 3

8

我细化了应该删除的空格,如下所示:

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

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

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

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

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

于 2012-10-16T21:53:07.513 回答
0

这对我有用:

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

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

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

看看这个帮助我回答我自己问题的教程网站:

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

于 2012-10-16T22:41:49.227 回答
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
于 2012-10-16T22:42:16.490 回答