使用regex验证器确保字符串包含特定的子字符串

时间:2011-12-01 21:29:40

标签: regex asp.net-mvc-3

我想使用正则表达式验证器来确保某个字符串变量包含子串"www.youtube.com/watch?v=",我该怎么做?

[RegularExpression()]
[Required(ErrorMessage = "Youtube link is Required")]
[StringLength(100, ErrorMessage="Youtube link cannot exceed 50 characters")]
public string YoutubeLink { get; set; }

2 个答案:

答案 0 :(得分:3)

if (YoutubeLink.Contains("www.youtube.com/watch?v="))
{
   //...
}

http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx

要使用RegularExpression属性,必须指定要使用的正则表达式:

[RegularExpression("www\\.youtube\\.com/watch\\?v=", ErrorMessage = "Link is incorrect")]
public string YoutubeLink { get; set; } 

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx


我认为你可能想要的是检查任何类型的URL开头。在这种情况下,您可以使用@"^(http://)?(www\.)?youtube\.com/watch\?v="作为正则表达式字符串。

See an example of what this would match

答案 1 :(得分:0)

使用像(Python)这样的东西可能更容易:

ytlink  = 'www.youtube.com/watch?v='
if(ytlink in yourfrase):
  doYourLogic()
else:
  smthElse()

如果我理解你的问题,请纠正我。