我对regx.Ismatch
有疑问。我需要以这种格式验证字符串@"[O]-[0-9]{8}-[0-9]{5}-[0-9]-[0-9]-[0-9]"
,我正在使用此代码:
if (!Regex.IsMatch(vm.CadastralNumber, @"[O]-[0-9]{8}-[0-9]{5}-[0-9]-[0-9]-[0-9]"))
ModelState.AddModelError("CadastralNumber", "Prefix should be O, or the format is not correct"); .
但是我遇到了一个问题,在那种格式之后,我需要用户不要写更多的数字,如-[0-9]-[0-9]-[0-9]-[0-9]
。它永远不会停止,我需要用户只写我先给出的格式,不要写更多 - 。有什么帮助吗?
答案 0 :(得分:0)
将其写为@"^[O]-[0-9]{8}-[0-9]{5}-[0-9]-[0-9]-[0-9]$"
,使正则表达式匹配字符串的开头(^
)和结束($
)。
答案 1 :(得分:0)
您必须使用锚点^
(字符串的开头)和$
(字符串的结尾)。您还可以使用更清洁的正则表达式:
@"^O-\d{8}-\d{5}(?:-\d){3}$"