Test regex expression for the model property - regex

This is part of my model
[RegularExpression(#"^([a-z][a-z0-9.-]+)\\((?! +\r?$)[a-z0-9 ]+)\r?$", ErrorMessage = #"Enter the account in domain\account format.")]
[ScaffoldColumn(true)]
[DisplayName("Account Name")]
string Col_DomainName { get; set; }
I want to write a UnitTest where I can test this. How do I do that? I am using NUnit.
Thanks!

Related

Paste string list as class

I was searching for "paste string list as class" like as "Paste XML as Classes".
For clarification, I have a long list of properties name of class & I am going make this as a class.
For example, I have below :
First_Name
Gender
Surname
ErrorCode
ErrorMessage
.....
And I want this below:
public string First_Name { get; set; }
public string Gender { get; set; }
public string Surname { get; set; }
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
......
You can use Block Selection trick in Visual Studio. Just hold your ALT key on your keyboard and select the part (by mouse drag) you want to paste your code, then paste it.
This what it looks light when you highlight it:
And here what it looks like when I paste it on highlighted code:
For additional details, you can refer to this link: Visual Studio Tips and Tricks.
I have not found any visual studio solution but I got a regular expression solution (using Notepad++).
The solution is below:
Find all words using "(.*)" and replace the desired one.
Find What: (.*)
Replace with: public string \1 { get; set; }
Like the below picture:
https://www.sublimetext.com/3
Sublime Text is far better than any solution suggested here.

Regex data annotation validation not working

I'm trying to use the "RegularExpression" DataAnnotation validaiton in my model. My problem is even for the valid input I provide for the field containing the validation, the regex doesn't match and it fails.
I try to test the same valid input with the regex in a stand-alone console app and I find it gets through.
My point is, when regex is being used in dataannotation as validation, it considers all input as bad input. What am I missing here?
My regex is for checking comma-seperated email IDs. Here is my model:
public partial class BuildModel
{
public Int64 ConfigID { get; set; }
[Required(ErrorMessage = "Please select a stream!")]
public String Name{ get; set; }
[RegularExpression(#"^(([a-zA-Z0-9_\-\.]+)#((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*(;|,)\s*|\s*$))", ErrorMessage = "Please enter valid email IDs separated by commas")]
public string EmailIDs { get; set; }
public bool IsActive { get; set; }
}
Note: The "Required" data-annotation validation works just fine. It is just the Regex one, that won't work!
As far as i understand you just have problem within your Regex.
To validate emails separated by comma you can use this regex:
^( *[\w+-.%]+#[\w-.]+\.[A-Za-z]{2,4}( *, *)? *)+$
Check in in here.
You must the jquery.validate.min.js and jquery.validate.unobtrusive.min.js in your page without these libraries required annotation would not works.

Regular Expression, find and replace Visual Studio 2015

I am trying to write a regular expression that replaces a data annotation adding more paramter to it.
For example,
Given this property
[DataMember(Name = "users")]
public List<User> Users { get; set; }
I would like to change it to
[DataMember(Name = "users"), XmlNode("users")]
public List<User> Users { get; set; }
Any idea how to achieve this?
search with this regex:
\[DataMember\(Name = \"(.*)\"\)\]
and replace by this one:
\[DataMember\(Name = "$1"\), XmlNode\("$1"\)\]
regex 101 link

Mvc model fields regular expression null value

I am using the regular expression for the Password field. Includes alpha-numeric string and md5.
[Required(AllowEmptyStrings = true)]
[RegularExpression(#"^(((?=.*\d)(?=.*[a-zA-Z]).{6,20})|([0-9a-f]{32}))$")]
[Display(Name = "Password")]
public string Password { get; set; }
And, I'd leave the field empty password. But ValidationMessage shows "This field is required."
message.Even if delete Required, it still gives the message.
Friends, how can I fix it?
Removing the Required attribute worked for me for server-side validation.
I've never used asp.net, and know nothing about it. However, 10 seconds on google tells me:
Make it nullable ( public string? Passsword { get; set; } )

use regex validator to ensure a string contains particular substring

I want to use a regex validator to ensure that a certain string variable contains the substring "www.youtube.com/watch?v=", how would I do this?
[RegularExpression()]
[Required(ErrorMessage = "Youtube link is Required")]
[StringLength(100, ErrorMessage="Youtube link cannot exceed 50 characters")]
public string YoutubeLink { get; set; }
if (YoutubeLink.Contains("www.youtube.com/watch?v="))
{
//...
}
http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx
To use the RegularExpression attribute, you must specify the regex to use :
[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
I think what you might want is to check for any type of URL beginning. In that case, you would use #"^(http://)?(www\.)?youtube\.com/watch\?v=" as the regex string.
See an example of what this would match
Maybe much easier to use something like (Python):
ytlink = 'www.youtube.com/watch?v='
if(ytlink in yourfrase):
doYourLogic()
else:
smthElse()
Please correct me if I understood your question wrong.