数字正则表达式验证器

时间:2012-01-27 17:08:49

标签: asp.net .net regex

我需要对

进行正则表达式验证
numeric digits grouped as X-XXXXX-XXX-X

任何人都可以帮忙吗?

5 个答案:

答案 0 :(得分:2)

Regex reg =  new Regex("\b[0-9]\-[0-9]{5}\-[0-9]{3}\-[0-9]\b");

答案 1 :(得分:1)

(^\d{1}-\d{5}-\d{3}-\d{1}$),这应该做。

答案 2 :(得分:1)

以下是我用于检查用户输入的社会安全号码的信息:

Public Shared Function CheckSSNFormat(ByVal text As String) As Boolean
    Dim digits As String = Regex.Replace(text, "[^0-9]", "")
    Return digits.Length = 9
End Function

它没有检查它们是否以特定格式输入,但这可能会更好,具体取决于你真正需要的东西 - 所以我想我会给你另一种选择,只是加入。

上面只删除除数字之外的所有内容,如果有9位数(有效的SS#),则返回true。这确实意味着一些愚蠢的用户可以输入类似的内容:hello123456789并且它会接受它有效,但这对我来说没问题,我宁愿这样做也不要接受123456789因为我只是在寻找123-45-6789

稍后我用它来保存到我的数据库:

Public Shared Function FormatSSNForSaving(ByVal text As String) As String
    If text = "" Then text = "000-00-0000"
    Return Regex.Replace(text, "[^0-9]", "")
End Function

这时候我想显示这个值(实际上我把这个用于电话号码,结果我从不显示SS#所以没有它的功能):

Public Shared Function FormatPhoneForDisplay(ByVal text As String) As String
    If text.Length <> 10 Then Return text
    Return "(" & text.Substring(0, 3) & ") " & text.Substring(3, 3) & "-" & text.Substring(6, 4)
End Function

答案 3 :(得分:0)

[0-9]-[0-9]{5}-[0-9]{3}-[0-9]

如果需要,您也可以使用圆括号来提取数字:

([0-9])-([0-9]{5})-([0-9]{3})-([0-9])

并在Regex.Replace()函数

中获取$ 1 $ 2等的值

答案 4 :(得分:0)

Regex pattern = new Regex("\b\d-\d{5}-\d{3}-\d\b");

\b - word boundary
\d - digit