此问题在此处已有答案:
Regex for RegularExpressionAttribute must contain "[S]" text(1个答案)
2天前关闭。
此正则表达式
[Required]
[RegularExpression("^[VB]", ErrorMessage = "The barcode must start with B or V")]
public string Barcode { get; set; }
失败,并显示以下信息:
"Barcode": {
"rawValue": "B6761126229752008155",
"attemptedValue": "B6761126229752008155",
"errors": [
{
"exception": null,
"errorMessage": "The barcode must start with B or V"
}
],
"validationState": 1,
"isContainerNode": false,
"children": null
},
即使显示的值是正确的.....正则表达式在www.example.com中通过Regex101.com
我不知道该怎么做。有什么想法吗?如果我删除验证器,代码将以正确的条形码值运行到我的控制器。
2条答案
按热度按时间balp4ylt1#
您只匹配了第一个单词,而不是整个“条形码”。因此,您需要添加一些内容来匹配“条形码”的其余部分。
一种形式是在末尾加上\d+,它告诉你在所需的“V”或“B”后面匹配一个或多个数字。
完整正则表达式可以是:“^[VB]”
这将匹配整个“条形码”并解决您的问题。
igetnqfo2#
您可以使用
通过添加
.*
,您允许整个字符串匹配正则表达式模式。基本上,^
在当前上下文中是多余的,因为RegularExpression
属性中使用的模式必须匹配整个字符串。