我有一个Windows窗体,我有一个文本框。我想使用正则表达式检查插入的文本是否包含除以下内容之外的任何其他字符:
我写过这行代码似乎不能正常工作 在VB.NET / C#:
中Regex.IsMatch(txtCreateDomain.ToString(), "^[a-zA-Z0-9_.]*$")
我希望例如创建一个如下变量:
C#
bool isValid = Regex.IsMatch(txtCreateDomain.ToString(), "^[a-zA-Z0-9_.]*$")
VB
Dim isValid As Boolean = Regex.IsMatch(txtCreateDomain.ToString(), "^[a-zA-Z0-9_.]*$")
我缺少什么?
答案 0 :(得分:2)
试试这个:
Regex.IsMatch(txtCreateDomain.ToString(), "^[a-zA-Z0-9_.]*$")
修改:
由于您尝试验证域名,因此更好的解决方案是使用here所述的解决方案:
// https://stackoverflow.com/a/967610/162671
private static bool IsValidDomainName(string name)
{
return Uri.CheckHostName(name) != UriHostNameType.Unknown;
}
或类似的东西:
var valid = false;
try
{
var uri = new Uri("http://example.com/");
valid = false;
}
catch (UriFormatException){
valid = false;
}
答案 1 :(得分:1)
你忘记了下划线和破折号:
bool isValid = Regex.IsMatch(txtCreateDomain.Text, "^[a-zA-Z0-9_.-]*$")
答案 2 :(得分:0)
/^\w+$/
\w is equivalent to [A-Za-z0-9_]