roa*_*own 7 c# regex fluentvalidation
我正在使用 FluentValidation 并尝试创建一个规则,如果字符串中有任何空格,即用户名,则会引发错误。
我已经查看了这些 SO,但似乎没有用,我确定我的语法有一点偏差?
什么是“非空格且非连字符”的正则表达式 以及 “非空格且非连字符”的正则表达式是什么
RuleFor(m => m.UserName).NotEmpty().Length(3, 15).Matches(@"/^\S\z/");
Run Code Online (Sandbox Code Playgroud)
或者
RuleFor(m => m.UserName).NotEmpty().Length(3, 15).Matches(@"[^\s]");
Run Code Online (Sandbox Code Playgroud)
这些似乎都不起作用。其他规则不为空且在 3 到 15 个字符之间。
小智 3
只需修改您的原始规则即可
编辑好的,按照建议删除分隔符。
RuleFor(m => m.UserName).NotEmpty().Length(3, 15).Matches(@"\A\S+\z");
Run Code Online (Sandbox Code Playgroud)
它所做的只是强制整个字符串从开始到结束都没有空格。
或者,我想你可以将它们组合成一场比赛,如下所示
RuleFor(m => m.UserName).Matches(@"\A\S{3,15}\z");
Run Code Online (Sandbox Code Playgroud)