2012-12-12 44 views
1

我试图理解正则表达式的概念,但似乎错过了某些东西。使用regularexpressions验证MVC验证器中的字符串

我想确保有人输入字段中以.wav结尾的字符串。应该是一个非常简单的正则表达式。

我试过这个... [RegularExpression(@“$。wav”)] 但似乎是不正确的。任何帮助表示赞赏。谢谢!

回答

1

$是字符串末尾的锚点,因此$.wav没有任何意义。字符串结尾后不能有任何字符。另外,.对于正则表达式(它只是意味着'任何字符')有特殊的含义,所以你需要逃避它。

尝试写

\.wav$ 

如果还是不行,请尝试如果RegularExpression属性要整个字符串,或只是其中的一部分匹配

.*\.wav$ 

(这要看。 .*表示'任何字符,0次或更多次')

你应该考虑的另一件事是如何处理字段中的额外空白。用户有一种可怕的习惯,即在输入中增加额外的空白空间 - 这就是为什么各种功能非常重要的原因。在这里,RegularExpressionAttribute可能进行评估,然后才能修正输入,所以你可能要这样写:

.*\.wav[\s]*$ 

[\s]*部分是指“任何空白字符(制表符,空格,换行符等)0次或多次” 。

你应该阅读关于正则表达式的教程。对于这样的简单问题,不难理解。当我在学习时,我发现这个网站非常方便:http://www.regular-expressions.info/

+0

非常感谢...原来是这个... [RegularExpression(@“。* wav $”)] – Zenacity

+0

@zenacity请注意'。* wav $ '是匹配以'wav'结尾的字符串,而不是你在问题中指定的'.wav'。 – Oliver