Powershell表单IP地址文本框验证

时间:2015-03-24 05:24:21

标签: validation powershell textbox

我正在尝试使用Sapien Powershell Studio通过Windows Powershell gui为IP地址输入创建一个文本框(例如000.000.000.000)。

我查看了Maskedtextbox,但它显示得不是很好(_),我无法限制输入范围(最多255)。

我也研究过NumericUpDown,如果我可以隐藏箭头,那将是完美的,因为它让我能够限制范围并设置为仅数字。

如果无法对输入进行重写,我想只有4个带有MaxLength = 3的文本框和一个“TextChanged”事件验证,如果它不是数字或在范围内,则擦除文本。

我是否忽略了一种更容易/更好的方式?

2 个答案:

答案 0 :(得分:2)

不要试图用你的文本框太聪明,允许你的用户输入IP地址而不必乱拨上/下箭头等,让他们以自由形式输入。他们会为此感谢你。

然后,在提交您的表单或退出该字段后,尝试通过执行以下操作来解析IP地址:

$ip_address = $null
$a = [System.Net.IPAddress]::TryParse($ip_address_to_validate, [ref]$ip_address)
if ($ip_address -ne $null)
{
    # It's valid
}
else
{
    # Not valid - display an error message on form
}

答案 1 :(得分:1)

Personaly我同意@Kev,但我使用正则表达式。

$regip=[regex]"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
$regip.IsMatch("10.1.1.10")