这是在一个 xaml 文件中。
我需要用正则表达式屏蔽框的输入。
我需要它包含 10 个数字或 13 个数字(按顺序,没有符号)
我有 :
<... ValidationRegEx="\d{13}" />
效果很好,但是当我想在其中添加十个掩码时,它会中断:
<... ValidationRegEx="\d{13} | \d{10}" />
有任何想法吗?
这是在一个 xaml 文件中。
我需要用正则表达式屏蔽框的输入。
我需要它包含 10 个数字或 13 个数字(按顺序,没有符号)
我有 :
<... ValidationRegEx="\d{13}" />
效果很好,但是当我想在其中添加十个掩码时,它会中断:
<... ValidationRegEx="\d{13} | \d{10}" />
有任何想法吗?
我细化了应该删除的空格,如下所示:
ValidationRegEx = "\d{13}|\d{10}"
否则,空格字符将成为您匹配的字符串的一部分(即 13 位数字后跟一个空格,或一个空格后跟 10 位数字)。
您也可以尝试像这样简化表达式:
ValidationRegEx = "\d{10}\d{3}?"
(需要十位加三位可选数字)。
这对我有用:
< ... RegEx="\b\d{10}\b|\b\d{13}\b" ... />
这表示“找到一个 10 位数字的整个单词或找到一个 13 位数字的整个世界”。
正则表达式前后的 \b 表示找到整个单词。
看看这个帮助我回答我自己问题的教程网站:
http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial
┌─────┬─ 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