亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式的 FluentValidation 不允許 N/A 或 NA 忽略大小寫和空格

使用正則表達式的 FluentValidation 不允許 N/A 或 NA 忽略大小寫和空格

C#
長風秋雁 2023-09-16 16:11:05
我FluentValidation在 ASP.NET MVC 應用程序和某些字段中使用不允許用戶輸入N/A及其變體。我發現蒂姆在這個問題中的回答有些幫助,但不完全是我想要的。它確實有效,但我不想使用RegexOptions.IgnoreCase像這樣的選項進行驗證似乎只發生在服務器端。RuleFor(x => x.Question01)     .Matches(@"^(?!\s*n\s*/?\s*a\s*$).*", RegexOptions.IgnoreCase)     .WithMessage("Invalid answer.");我正在尋找一個純正則表達式解決方案(不使用RegexOptions.IgnoreCase),忽略大小寫和空格以允許除N/A, N / A, NA, N A, n/a, n / a, na,n a等之外的任何內容。
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

如果您想完全匹配這些值并且不允許大小寫混合的組合,您可以使用 alternation 將它們全部列出。

請注意\s它也匹配換行符。

如果您想允許除此模式之外的所有模式,您可以使用負前瞻(?!來斷言右側的不是此模式和內聯修飾符(?i)(?i:

^(?!(?i:n?*/??*a)$).+$
  • ^字符串的開頭

  • (?!負向前看,斷言右邊的不是

    • (?i:不區分大小寫匹配的內聯修飾符

    • n */? *amatch?n,可選,/周圍有可選空格

    • )$關閉內聯修飾符并斷言字符串結尾

  • )關閉前瞻

  • .+匹配任何字符 1+ 次

  • $斷言字符串結尾

.NET 正則表達式演示

如果這也適用于 Javascript,則您可以使用字符類,因為不支持內聯修飾符。

^(?!(?:[nN]?*\/??*[aA])$).+$

正則表達式演示


查看完整回答
反對 回復 2023-09-16
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

這個解決方案確實有效:

RuleFor(x => x.Question01)
    .Matches(@"^(?!\s*[Nn]\s*/?\s*[Aa]\s*$).*")
    .WithMessage("Invalid answer.");


查看完整回答
反對 回復 2023-09-16
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

此正則表達式將匹配 N/A、n/a、NA、na 的任何變體

忽略 N -> A 和 N -> / 和 / -> A 之間的所有空格

\s*

對于不區分大小寫

?我:

最終結果:

^(?i:n\s*/?\s*a)$


查看完整回答
反對 回復 2023-09-16
  • 3 回答
  • 0 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號