【问题标题】:Attribute to Prevent Slash (/) and Backslash (\)?防止斜线 (/) 和反斜线 (\) 的属性?
【发布时间】:2013-09-30 16:40:33
【问题描述】:

我有一个文本字段属性,我不希望用户能够在其中输入正斜杠或反斜杠。这个有数据属性还是我需要使用RegularExpression 属性?

这似乎很常见,但我没有找到答案。我对正则表达式不熟悉,所以我现在正在研究它们。

【问题讨论】:

  • @AdamMaras,是的!谢谢。这些值在第 3 方组件的文件路径类型引用中使用,因此我需要数据不包含斜杠。
  • String.Replace 也许?
  • 对于文件路径也不起作用的其他字符,例如 : 怎么办?您的问题似乎要求允许这些。
  • @Magnus,我考虑过,但希望用户得到反馈。
  • @hvd,它不完全是文件路径引用,所以我认为这些不会引起问题,但限制这些值也不会有问题。

标签: c# regex asp.net-mvc attributes


【解决方案1】:

您可以为此使用RegularExpressionAttribute

[RegularExpression(@"^[^\\/]*$")]

分解正则表达式:

^ ... $

^$ 分别表示字段的开始和结束。此包装器强制 整个 字符串与正则表达式匹配以进行验证。

[^ ... ]*

这是一个否定字符类,可以出现零次或多次。要匹配,字符串不得包含此容器内的任何字符。

\\
/

第一个字符,反斜杠,必须被转义。正斜杠不能。

一旦你把它们放在一起,你就会有一个正则表达式,它指出字符串中的任何地方都不能有反斜杠或正斜杠。


在这里,在Debuggex 上试用。

【讨论】:

  • 感谢您的详细回答!效果很好,我一定会为 debuggex 添加书签!
猜你喜欢
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 2010-10-30
  • 2021-11-19
相关资源
最近更新 更多