检查有效的字符串格式

时间:2018-07-28 09:10:46

标签: c# string validation formatting

我正在尝试建立一个验证系统,在该系统中检查字​​符串的格式正确。

所需的格式只能包含数字和破折号-,并按照***-**-*****-**-* 3-2-5-2-1的顺序进行排序。 例如978-14-08855-65-2

我是否可以通过更改格式键Regex来像使用电子邮件检查系统一样使用@"^([\w]+)@([\w])\.([\w]+)$"

电子邮件检查代码为

public static bool ValidEmail(string email, out string error)
{
    error = "";
    string regexEmailCOM = @"^([\w]+)@([\w])\.([\w]+)$";            // allows for .com emails
    string regexEmailCoUK = @"^([\w]+)@([\w])\.([\w]+)\.([\w]+)$";  // this allows fo .co.uk emails
    var validEmail = new Regex(email);

    return validEmail.IsMatch(regexEmailCOM) || validEmail.IsMatch(regexEmailCoUK) && error == "") // if the new instance matches with the string, and there is no error
}

1 个答案:

答案 0 :(得分:1)

正则表达式确实很适合这种情况。

一个可能的表达式是:

^\d{3}-\d\d-\d{5}-\d\d-\d$

这正好匹配由\d分隔的5组唯一数字(-)。使用大括号设置固定的重复次数。