Skip to content

Commit 5bc84ef

Browse files
glen-84michaelstaib
authored andcommitted
Fixed issues with regular expressions in scalar types (#8309)
1 parent 253bf65 commit 5bc84ef

19 files changed

+132
-51
lines changed

src/HotChocolate/Core/src/Types.Scalars/EmailAddressType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public partial class EmailAddressType : RegexType
1616
"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?" +
1717
"(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$";
1818

19-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
19+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
2020
private static partial Regex CreateRegex();
2121

2222
/// <summary>

src/HotChocolate/Core/src/Types.Scalars/HexColorType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public partial class HexColorType : RegexType
1212
private const string _validationPattern =
1313
"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}|[A-Fa-f0-9]{8})$";
1414

15-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
15+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
1616
private static partial Regex CreateRegex();
1717

1818
/// <summary>

src/HotChocolate/Core/src/Types.Scalars/HslType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace HotChocolate.Types;
1010
public partial class HslType : RegexType
1111
{
1212
private const string _validationPattern =
13-
"^(?:hsla?)\\((?:\\d+%?(?:deg|rad|grad|turn)?(?:,|\\s)+){2,3}[\\s\\/]*[\\d\\.]+%?\\)";
13+
"^(?:hsla?)\\((?:[0-9]+%?(?:deg|rad|grad|turn)?(?:,|\\s)+){2,3}[\\s\\/]*[0-9\\.]+%?\\)";
1414

1515
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
1616
private static partial Regex CreateRegex();

src/HotChocolate/Core/src/Types.Scalars/HslaType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace HotChocolate.Types;
1010
public partial class HslaType : RegexType
1111
{
1212
private const string _validationPattern =
13-
"^(?:hsla?)\\((?:\\d+%?(?:deg|rad|grad|turn)?(?:,|\\s)+){2,3}[\\s\\/]*[\\d\\.]+%?\\)";
13+
"^(?:hsla?)\\((?:[0-9]+%?(?:deg|rad|grad|turn)?(?:,|\\s)+){2,3}[\\s\\/]*[0-9\\.]+%?\\)";
1414

1515
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
1616
private static partial Regex CreateRegex();

src/HotChocolate/Core/src/Types.Scalars/IPv4Type.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public partial class IPv4Type : RegexType
1414
"[0-9]|0?[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\/(?:[0-9]|[1-2][0-9]|3[0" +
1515
"-2]))?)$)";
1616

17-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
17+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
1818
private static partial Regex CreateRegex();
1919

2020
/// <summary>

src/HotChocolate/Core/src/Types.Scalars/IPv6Type.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public partial class IPv6Type : RegexType
3333
"]{1,4}|(?:(?:[0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)(?:\\/(?:0?0?[0-9]|0?[" +
3434
"1-9][0-9]|1[01][0-9]|12[0-8]))?)$)";
3535

36-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
36+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
3737
private static partial Regex CreateRegex();
3838

3939
/// <summary>

src/HotChocolate/Core/src/Types.Scalars/MacAddressType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ public class MacAddressType : RegexType
2121
"[0-9A-Fa-f]{2})){2,3}$";
2222

2323
#if BACKREFERENCE_NOT_SUPPORTED
24-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
24+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
2525
private static partial Regex CreateRegex();
2626
#else
2727
private static Regex CreateRegex()
2828
=> new Regex(
2929
_validationPattern,
30-
RegexOptions.Compiled | RegexOptions.IgnoreCase,
30+
RegexOptions.Compiled,
3131
TimeSpan.FromMilliseconds(DefaultRegexTimeoutInMs));
3232
#endif
3333

src/HotChocolate/Core/src/Types.Scalars/PhoneNumberType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public partial class PhoneNumberType : RegexType
1212
/// <summary>
1313
/// Regex that validates the standard E.164 format
1414
/// </summary>
15-
private const string _validationPattern = "^\\+[1-9]\\d{1,14}$";
15+
private const string _validationPattern = "^\\+[1-9][0-9]{2,14}$";
1616

17-
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
17+
[GeneratedRegex(_validationPattern, RegexOptions.None, DefaultRegexTimeoutInMs)]
1818
private static partial Regex CreateRegex();
1919

2020
/// <summary>

src/HotChocolate/Core/src/Types.Scalars/PostalCodeType.cs

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,55 +39,55 @@ public class PostalCodeType : StringType
3939
];
4040

4141
#if DISABLED_DUE_TO_COMPILER_ISSUE
42-
[GeneratedRegex(PostalCodePatterns.US, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
42+
[GeneratedRegex(PostalCodePatterns.US, RegexOptions.None, DefaultRegexTimeoutInMs)]
4343
private static partial Regex CreateRegexUs();
4444

45-
[GeneratedRegex(PostalCodePatterns.UK, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
45+
[GeneratedRegex(PostalCodePatterns.UK, RegexOptions.None, DefaultRegexTimeoutInMs)]
4646
private static partial Regex CreateRegexUk();
4747

48-
[GeneratedRegex(PostalCodePatterns.DE, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
48+
[GeneratedRegex(PostalCodePatterns.DE, RegexOptions.None, DefaultRegexTimeoutInMs)]
4949
private static partial Regex CreateRegexDe();
5050

51-
[GeneratedRegex(PostalCodePatterns.CA, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
51+
[GeneratedRegex(PostalCodePatterns.CA, RegexOptions.None, DefaultRegexTimeoutInMs)]
5252
private static partial Regex CreateRegexCa();
5353

54-
[GeneratedRegex(PostalCodePatterns.FR, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
54+
[GeneratedRegex(PostalCodePatterns.FR, RegexOptions.None, DefaultRegexTimeoutInMs)]
5555
private static partial Regex CreateRegexFr();
5656

57-
[GeneratedRegex(PostalCodePatterns.IT, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
57+
[GeneratedRegex(PostalCodePatterns.IT, RegexOptions.None, DefaultRegexTimeoutInMs)]
5858
private static partial Regex CreateRegexIt();
5959

60-
[GeneratedRegex(PostalCodePatterns.AU, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
60+
[GeneratedRegex(PostalCodePatterns.AU, RegexOptions.None, DefaultRegexTimeoutInMs)]
6161
private static partial Regex CreateRegexAu();
6262

63-
[GeneratedRegex(PostalCodePatterns.NL, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
63+
[GeneratedRegex(PostalCodePatterns.NL, RegexOptions.None, DefaultRegexTimeoutInMs)]
6464
private static partial Regex CreateRegexNl();
6565

66-
[GeneratedRegex(PostalCodePatterns.ES, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
66+
[GeneratedRegex(PostalCodePatterns.ES, RegexOptions.None, DefaultRegexTimeoutInMs)]
6767
private static partial Regex CreateRegexEs();
6868

69-
[GeneratedRegex(PostalCodePatterns.DK, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
69+
[GeneratedRegex(PostalCodePatterns.DK, RegexOptions.None, DefaultRegexTimeoutInMs)]
7070
private static partial Regex CreateRegexDk();
7171

72-
[GeneratedRegex(PostalCodePatterns.SE, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
72+
[GeneratedRegex(PostalCodePatterns.SE, RegexOptions.None, DefaultRegexTimeoutInMs)]
7373
private static partial Regex CreateRegexSe();
7474

75-
[GeneratedRegex(PostalCodePatterns.BE, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
75+
[GeneratedRegex(PostalCodePatterns.BE, RegexOptions.None, DefaultRegexTimeoutInMs)]
7676
private static partial Regex CreateRegexBe();
7777

78-
[GeneratedRegex(PostalCodePatterns.IN, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
78+
[GeneratedRegex(PostalCodePatterns.IN, RegexOptions.None, DefaultRegexTimeoutInMs)]
7979
private static partial Regex CreateRegexIn();
8080

81-
[GeneratedRegex(PostalCodePatterns.AT, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
81+
[GeneratedRegex(PostalCodePatterns.AT, RegexOptions.None, DefaultRegexTimeoutInMs)]
8282
private static partial Regex CreateRegexAt();
8383

84-
[GeneratedRegex(PostalCodePatterns.PT, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
84+
[GeneratedRegex(PostalCodePatterns.PT, RegexOptions.None, DefaultRegexTimeoutInMs)]
8585
private static partial Regex CreateRegexPt();
8686

87-
[GeneratedRegex(PostalCodePatterns.CH, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
87+
[GeneratedRegex(PostalCodePatterns.CH, RegexOptions.None, DefaultRegexTimeoutInMs)]
8888
private static partial Regex CreateRegexCh();
8989

90-
[GeneratedRegex(PostalCodePatterns.LU, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
90+
[GeneratedRegex(PostalCodePatterns.LU, RegexOptions.None, DefaultRegexTimeoutInMs)]
9191
private static partial Regex CreateRegexLu();
9292
#else
9393
private static Regex CreateRegexUs()
@@ -144,7 +144,7 @@ private static Regex CreateRegexLu()
144144
private static Regex CreateRegex(string pattern)
145145
=> new Regex(
146146
pattern,
147-
RegexOptions.Compiled | RegexOptions.IgnoreCase,
147+
RegexOptions.Compiled,
148148
TimeSpan.FromMilliseconds(DefaultRegexTimeoutInMs));
149149
#endif
150150

@@ -251,19 +251,19 @@ private static bool ValidatePostCode(string postCode)
251251
private static class PostalCodePatterns
252252
{
253253
public const string US =
254-
"(^\\d{5}([-]?\\d{4})?$)";
254+
"(^[0-9]{5}([-]?[0-9]{4})?$)";
255255
public const string UK =
256-
"(^(GIR|[A-Z]\\d[A-Z\\d]??|[A-Z]{2}\\d[A-Z\\d]??)[ ]??(\\d[A-Z]{2})$)";
256+
"(^(GIR|[A-Z][0-9][A-Z0-9]??|[A-Z]{2}[0-9][A-Z0-9]??)[ ]??([0-9][A-Z]{2})$)";
257257
public const string DE =
258-
"(\\b((?:0[1-46-9]\\d{3})|(?:[1-357-9]\\d{4})|(?:[4][0-24-9]" +
259-
"\\d{3})|(?:[6][013-9]\\d{3}))\\b)";
258+
"(\\b((?:0[1-46-9][0-9]{3})|(?:[1-357-9][0-9]{4})|(?:[4][0-24-9]" +
259+
"[0-9]{3})|(?:[6][013-9][0-9]{3}))\\b)";
260260
public const string CA =
261-
"(^([ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJKLMNPRSTVWXYZ]) {0,1}" +
262-
"(\\d[ABCEGHJKLMNPRSTVWXYZ]\\d)$)";
261+
"(^([ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ]) {0,1}" +
262+
"([0-9][ABCEGHJKLMNPRSTVWXYZ][0-9])$)";
263263
public const string FR =
264-
"(^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$)";
264+
"(^([Ff]-)?((2[ABab])|[0-9]{2})[0-9]{3}$)";
265265
public const string IT =
266-
"(^(V-|I-)?[0-9]{5}$)";
266+
"(^([VIvi]-)?[0-9]{5}$)";
267267
public const string AU =
268268
"(^(0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|" +
269269
"(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2})$)";
@@ -272,20 +272,20 @@ private static class PostalCodePatterns
272272
public const string ES =
273273
"(^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$)";
274274
public const string DK =
275-
"(^([D|d][K|k]( |-))?[1-9]{1}[0-9]{3}$)";
275+
"(^([Dd][Kk]( |-))?[1-9]{1}[0-9]{3}$)";
276276
public const string SE =
277277
"(^(s-|S-){0,1}[0-9]{3}\\s?[0-9]{2}$)";
278278
public const string BE =
279279
"(^[1-9]{1}[0-9]{3}$)";
280280
public const string IN =
281-
"(^\\d{6}$)";
281+
"(^[0-9]{6}$)";
282282
public const string AT =
283-
"(^\\d{4}$)";
283+
"(^[0-9]{4}$)";
284284
public const string PT =
285-
"(^\\d{4}([\\-]\\d{3})?$)";
285+
"(^[0-9]{4}([\\-][0-9]{3})?$)";
286286
public const string CH =
287-
"(^\\d{4}$)";
287+
"(^[0-9]{4}$)";
288288
public const string LU =
289-
"(^\\d{4}$)";
289+
"(^[0-9]{4}$)";
290290
}
291291
}

src/HotChocolate/Core/src/Types.Scalars/RgbType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace HotChocolate.Types;
1212
public partial class RgbType : RegexType
1313
{
1414
private const string _validationPattern =
15-
"((?:rgba?)\\((?:\\d+%?(?:,|\\s)+){2,3}[\\s\\/]*[\\d\\.]+%?\\))";
15+
"((?:rgba?)\\((?:[0-9]+%?(?:,|\\s)+){2,3}[\\s\\/]*[0-9\\.]+%?\\))";
1616

1717
[GeneratedRegex(_validationPattern, RegexOptions.IgnoreCase, DefaultRegexTimeoutInMs)]
1818
private static partial Regex CreateRegex();

0 commit comments

Comments
 (0)