是否可以添加一个String.contains多个值?

时间:2015-11-24 16:04:56

标签: asp.net vb.net string contains

我想创建一个控件,当我创建一个companyId时,不允许使用特殊字符创建id,如(&),(/),(),(ñ),('):

 If txtIdCompany.Text.Contains("&") Then
   // alert error message
 End If 

但我不能这样做:

If txtIdCompany.Text.Contains("&", "/", "\") Then
       // alert error message
     End If 

如何检查同一行中的多个字符串?

2 个答案:

答案 0 :(得分:7)

您可以使用Char()Enumerable.Contains等集合。由于String实现IEnumerable(Of Char),即使这种简洁有效的LINQ查询也可以工作:

Dim disallowed = "&/\"
If disallowed.Intersect(txtIdCompany.Text).Any() Then
    ' alert error message
End If

这是使用Enumerable.Contains

的类似方法
If txtIdCompany.Text.Any(AddressOf disallowed.Contains) Then
    ' alert error message
End If

使用String.IndexOfAny的第三个选项:

If txtIdCompany.Text.IndexOfAny(disallowed.ToCharArray()) >= 0 Then
    ' alert error message
End If

答案 1 :(得分:0)

If txtIdCompany.Text.Contains("&") Or txtIdCompany.Text.Contains("\") Or txtIdCompany.Text.Contains("/") Then

   // alert error message

 End If