2013-12-20 33 views
1

我需要知道如何结合属性和正则表达式。这里的属性:使用正则表达式内置属性设置器

public string NameFormal   
{  
    get {return nameFormal;}  
    set  
    { 
     nameFormal = value; 
    } 
} 

我想使用setter来验证输入使用我已经有的正则表达式模式。我可以编写一个单独的bool函数来进行是/否的匹配。但是,如何在返回字符串的属性内部执行此操作?感谢帮助。

我正在使用VS2010。

回答

0

假设你的意思是你想在设置setter之前检查值与正则表达式吗?

public string NameFormal   
{  
    get {return nameFormal;}  
    set  
    { 
     string pattern = "^\\d{3}-\\d{3}-\\d{4}$"; //input your regex here 
     if (Regex.IsMatch(value, pattern)) 
     { 
      nameFormal = value; 
     } 
     else 
     { 
      //didn't match 
     } 
    } 
} 

小心把逻辑是这样的制定者。然而,因为它可以设置一个属性,它静静地失败时会比较混乱,我建议抛出有得提醒用户/程序员,设置此变量失败。

+0

谢谢,凯文。是的,我想在设置setter之前检查值与正则表达式。也许我需要使用bool函数验证用户的表单输入,然后分别用干净的输入调用setter?否则,正如你注意到的那样,该属性并不适合与用户来回布尔是/不来回。 – TSB

+0

@ user1695788从长远来看,这种方法可能会让你更少头疼。 –

+0

明白了。这些设置人员仍然可以更正用户输入,而无需像用户重新格式化电话号码那样与用户进行任何交互。非常感谢。 – TSB