文本框只允许在Windows应用程序的IP地址
答
使用此方法来验证IP
public bool IsValidIP(string addr)
{
//create our match pattern
string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";
//create our Regular Expression object
Regex check = new Regex(pattern);
//boolean variable to hold the status
bool valid = false;
//check to make sure an ip address was provided
if (addr == "")
{
//no address provided so return false
valid = false;
}
else
{
//address provided so use the IsMatch Method
//of the Regular Expression object
valid = check.IsMatch(addr, 0);
}
//return the results
return valid;
}
答
你可以使用一个ASP.NET Regular Expression Validator
:
<asp:RegularExpressionValidator ID="regexpName" runat="server"
ErrorMessage="This expression does not validate."
ControlToValidate="yourTextBox"
ValidationExpression="RegEx here" />
然后设置ValidationExpression
于:(只允许IP地址)
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\
+0
我想在Windows应用程序不为web .. – Amulraj
+0
@Amulraj你可以使用yourTextBox_Validating事件来捕获这个,然后使用我提供的正则表达式。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating.aspx –
答
这里。 如果你最终得到4个字节(如0-255范围内的数字),那么将文本按点分割,这是一个有效的IP。
bool IsTextAValidIPAddress(string text)
{
bool result = true;
string[] values = text.Split(new[] { "." }, StringSplitOptions.None); //keep empty strings when splitting
result &= values.Length == 4; // aka string has to be like "xx.xx.xx.xx"
if(result)
for (int i = 0; i < 4; i++)
result &= byte.TryParse(values[i], out temp); //each "xx" must be a byte (0-255)
return result;
}
或者,如果你能/想利用System.Net
bool IsTextAValidIPAddress(string text)
{
System.Net.IPAddress test;
return System.Net.IPAddress.TryParse(text,out test);
}
试试这个[IP-文本框(http://www.codeproject.com/Articles/11576/IP-TextBox) – PresleyDias
所以...它是一个Windows应用程序(Winforms,WCF,Silverlight)或Web应用程序(ASP.NET,ASP.NET MVC,...)...只是一个原因*** ASP.NET Windows应用程序* **,有点混乱...... – balexandre
根据对Darren的问题的评论(删除asp.net)进行编辑。 –