在 FluentValidation 中检查空格

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)