Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 正则表达式匹配“;“真的”;或;假;_Asp.net_Regex_Vb.net_Validation - Fatal编程技术网

Asp.net 正则表达式匹配“;“真的”;或;假;

Asp.net 正则表达式匹配“;“真的”;或;假;,asp.net,regex,vb.net,validation,Asp.net,Regex,Vb.net,Validation,我需要创建正则表达式验证器,它需要匹配文本“True”或“False”(不区分大小写) 我试过下面的正则表达式 ^(True|False|TRUE|FALSE)$ 这是正确的吗?但区分大小写存在问题 编辑 我在以下答案中尝试了regex,但它没有启动,因为?I使用RegexOptions.IgnoreCase选项并使用以下regex: ^(true|false)$ 或者使用忽略大小写修改器?i 像这样: ^(?i:true|false)$ 另一个选项是将字符串转换为小写,只需使用^(tru

我需要创建正则表达式验证器,它需要匹配文本“True”或“False”(不区分大小写)

我试过下面的正则表达式

^(True|False|TRUE|FALSE)$
这是正确的吗?但区分大小写存在问题

编辑


我在以下答案中尝试了regex,但它没有启动,因为
?I

使用
RegexOptions.IgnoreCase
选项并使用以下regex:

^(true|false)$
或者使用忽略大小写修改器
?i

像这样:

^(?i:true|false)$

另一个选项是将字符串转换为小写,只需使用
^(true | false)$

或者使用
RegexOptions.IgnoreCase

或内联
?i
修饰符

^(?i)(true|false)$

通过一个小优化:

^(?:tru|fals)e$
由于(?i)没有验证,我们将在代码中设置大小写不敏感

对于任何需要代码的未来读者:

Dim FoundMatch As Boolean
Try
    FoundMatch = Regex.IsMatch(SubjectString, "^(?:tru|fals)e$", RegexOptions.IgnoreCase)
Catch ex As ArgumentException
    'Syntax error in the regular expression
End Try

单词
True
False
的另一种方法:

If Boolean.TryParse(yourString, New Boolean) = true Then
    'ok
else
    'not ok
End If
如果要将文本转换为布尔变量并在以后使用:

Dim value As Boolean
If Boolean.TryParse(yourString, value) = true Then
    'Use value
else
    'Handle a wrong text situation
End If

Boolean.TryParse
忽略大小写
trUe
trUe
解析ok

我已经检查了这篇文章中的所有答案,但没有任何结果

我猜Asp.Net RegularExpression validator不支持
?I

最后我使用了下面的正则表达式

^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
它像预期的那样工作


此正则表达式将用于动态创建的Asp.net
RegularExpressionvalidator

验证,因为
而不使用此表达式启动?i
验证,因为
而不使用此表达式启动?i
验证,因为?i@VigneshKumar哈奇怪。既然是这样,我就在代码中加入了不区分大小写的内容。@vignesh使用RegexOptions.IgnoreCase而不是(?I)用vb.net标记问题不是一个好主意,而事实上你使用的是javascript(客户端验证)。@UlugbekUmirov它不是javascript(客户端验证)。此正则表达式将用于动态创建的Asp.net RegularExpressionValidator。它最终是javascript。您可以在将
EnableClientScript
设置为false的情况下尝试上面的答案,这些答案将起作用。到底是什么不起作用?当您尝试发布时,它将被触发。在缺少
(?i)
的情况下,我认为这是一个您可以使用的解决方案。