RegularExpressionAttributeを使用してユーザー名を検証するには、正規表現が必要です。requestPathInvalidCharactersのデフォルト値(<,>,*,%,&,:,\,?)を含まないユーザー名と一致する必要があります。
だから合ってるはず
ああ。
aaf8-a
アファ
似合わないはず
aa<fa
aaf>a
あふ*あ
アファ*
aaf%a
アファ&ア
aaf:a
aaf\a
aaf?a
これまでのところ、この正規表現を微調整してきましたが、これらのケースのいずれかでまだ失敗しています...
^(?!.*(<|>|\*|%|&|:|\\|\?).*)$
[Fact] public void CanValidateAgainstInvalidCharacter() { var result = true; Assert.True(result);
var listWeDontWant = @"<,>,*,%,&,:,\,?";
var inner = listWeDontWant.Split(',').Select(x => Regex.Escape(x)).Aggregate((s, s1) => s + "|" + s1);
//inner = @"\\";
var pattern = @"^(?!.*(" + inner + ").*)$";
Debug.WriteLine(pattern);
//var isMatch = ;
//Debug.WriteLine(isMatch);
pattern = @"^[^<>*%&:\\\?]+$";
Assert.False(Regex.IsMatch("aaf\a", pattern));
// Assert.True(Regex.IsMatch("aafa.", pattern));
// Assert.True(Regex.IsMatch("aaf8-a", pattern));
//Assert.True(Regex.IsMatch("aafa", pattern));
//Assert.True(Regex.IsMatch("aafa", pattern));
//Assert.True(Regex.IsMatch("aa,fa", pattern));
//Assert.True(Regex.IsMatch("aafa", pattern));
//Assert.False(Regex.IsMatch("aa<fa", pattern));
//Assert.False(Regex.IsMatch("aaf>a", pattern));
//Assert.False(Regex.IsMatch("aaf*a", pattern));
//Assert.False(Regex.IsMatch("aafa*", pattern));
//Assert.False(Regex.IsMatch("aaf%a", pattern));
//Assert.False(Regex.IsMatch("aaf&a", pattern));
//Assert.False(Regex.IsMatch("aaf:a", pattern));
//Assert.False(Regex.IsMatch("aaf\a", pattern));
//Assert.False(Regex.IsMatch("aaf?a", pattern));
}