Use isAscii...()
This commit is contained in:
		| @@ -131,7 +131,7 @@ namespace Elwig.Helpers { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static int Modulo(string a, int b) { |         public static int Modulo(string a, int b) { | ||||||
|             if (a.Length == 0 || !a.All(char.IsDigit)) { |             if (a.Length == 0 || !a.All(char.IsAsciiDigit)) { | ||||||
|                 throw new ArgumentException("First argument has to be a decimal string"); |                 throw new ArgumentException("First argument has to be a decimal string"); | ||||||
|             } else if (b < 2) { |             } else if (b < 2) { | ||||||
|                 throw new ArgumentException("Second argument has to be greater than 1"); |                 throw new ArgumentException("Second argument has to be greater than 1"); | ||||||
|   | |||||||
| @@ -34,12 +34,12 @@ namespace Elwig.Helpers { | |||||||
|             return CheckInteger(input, required, -1); |             return CheckInteger(input, required, -1); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static ValidationResult CheckInteger(TextBox input, bool required, int maxLen) { |         private static ValidationResult CheckInteger(TextBox input, bool required, int maxLen) { | ||||||
|             string text = ""; |             string text = ""; | ||||||
|             int pos = input.CaretIndex; |             int pos = input.CaretIndex; | ||||||
|             for (int i = 0; i < input.Text.Length; i++) { |             for (int i = 0; i < input.Text.Length; i++) { | ||||||
|                 char ch = input.Text[i]; |                 char ch = input.Text[i]; | ||||||
|                 if (char.IsDigit(ch)) |                 if (char.IsAsciiDigit(ch)) | ||||||
|                     text += ch; |                     text += ch; | ||||||
|                 if (i == input.CaretIndex - 1) |                 if (i == input.CaretIndex - 1) | ||||||
|                     pos = text.Length; |                     pos = text.Length; | ||||||
| @@ -89,7 +89,7 @@ namespace Elwig.Helpers { | |||||||
|                 } else if (v == 0 && ch == '+') { |                 } else if (v == 0 && ch == '+') { | ||||||
|                     v++; |                     v++; | ||||||
|                     text += ch; |                     text += ch; | ||||||
|                 } else if (v > 0 && char.IsDigit(ch)) { |                 } else if (v > 0 && char.IsAsciiDigit(ch)) { | ||||||
|                     if (PHONE_NRS.Any(kv => text == "+" + kv.Key)) |                     if (PHONE_NRS.Any(kv => text == "+" + kv.Key)) | ||||||
|                         text += ' '; |                         text += ' '; | ||||||
|                     if (text.StartsWith("+43 ")) { |                     if (text.StartsWith("+43 ")) { | ||||||
| @@ -127,7 +127,7 @@ namespace Elwig.Helpers { | |||||||
|             for (int i = 0; i < input.Text.Length && text.Length < 256; i++) { |             for (int i = 0; i < input.Text.Length && text.Length < 256; i++) { | ||||||
|                 char ch = input.Text[i]; |                 char ch = input.Text[i]; | ||||||
|                 if (domain) { |                 if (domain) { | ||||||
|                     if ((char.IsAscii(ch) && char.IsLetterOrDigit(ch)) || ".-_öäüßÖÄÜẞ".Any(c => c == ch)) { |                     if ((char.IsAsciiLetterOrDigit(ch)) || ".-_öäüßÖÄÜẞ".Any(c => c == ch)) { | ||||||
|                         if (!(text.Last() == '.' && ch == '.')) |                         if (!(text.Last() == '.' && ch == '.')) | ||||||
|                             text += char.ToLower(ch); |                             text += char.ToLower(ch); | ||||||
|                     } |                     } | ||||||
| @@ -151,7 +151,7 @@ namespace Elwig.Helpers { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             var last = text.Split(".").Last(); |             var last = text.Split(".").Last(); | ||||||
|             if (last.Length < 2 || !last.All(ch => char.IsAscii(ch) && char.IsLower(ch))) |             if (last.Length < 2 || !last.All(ch => char.IsAsciiLetterLower(ch))) | ||||||
|                 return new(false, "E-Mail-Adresse ungültig"); |                 return new(false, "E-Mail-Adresse ungültig"); | ||||||
|  |  | ||||||
|             return new(true, null); |             return new(true, null); | ||||||
| @@ -163,9 +163,9 @@ namespace Elwig.Helpers { | |||||||
|             int v = 0; |             int v = 0; | ||||||
|             for (int i = 0; i < input.Text.Length && v < 34; i++) { |             for (int i = 0; i < input.Text.Length && v < 34; i++) { | ||||||
|                 char ch = input.Text[i]; |                 char ch = input.Text[i]; | ||||||
|                 if (char.IsLetterOrDigit(ch) && char.IsAscii(ch)) { |                 if (char.IsAsciiLetterOrDigit(ch)) { | ||||||
|                     if (((v < 2 && char.IsLetter(ch)) || (v >= 2 && v < 4 && char.IsDigit(ch)) || v >= 4) && |                     if (((v < 2 && char.IsAsciiLetter(ch)) || (v >= 2 && v < 4 && char.IsAsciiDigit(ch)) || v >= 4) && | ||||||
|                         ((!text.StartsWith("AT") && !text.StartsWith("DE")) || char.IsDigit(ch))) |                         ((!text.StartsWith("AT") && !text.StartsWith("DE")) || char.IsAsciiDigit(ch))) | ||||||
|                     { |                     { | ||||||
|                         if (v != 0 && v % 4 == 0) |                         if (v != 0 && v % 4 == 0) | ||||||
|                             text += ' '; |                             text += ' '; | ||||||
| @@ -190,7 +190,7 @@ namespace Elwig.Helpers { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             var validation = (text[4..] + text[..4]).Replace(" ", "") |             var validation = (text[4..] + text[..4]).Replace(" ", "") | ||||||
|                 .Select(ch => char.IsDigit(ch) ? ch.ToString() : (ch - 'A' + 10).ToString()) |                 .Select(ch => char.IsAsciiDigit(ch) ? ch.ToString() : (ch - 'A' + 10).ToString()) | ||||||
|                 .Aggregate((a, b) => a + b); |                 .Aggregate((a, b) => a + b); | ||||||
|             if (Utils.Modulo(validation, 97) != 1) |             if (Utils.Modulo(validation, 97) != 1) | ||||||
|                 return new(false, "Prüfsumme der IBAN ist falsch"); |                 return new(false, "Prüfsumme der IBAN ist falsch"); | ||||||
| @@ -203,10 +203,10 @@ namespace Elwig.Helpers { | |||||||
|             int pos = input.CaretIndex; |             int pos = input.CaretIndex; | ||||||
|             for (int i = 0, v = 0; i < input.Text.Length; i++) { |             for (int i = 0, v = 0; i < input.Text.Length; i++) { | ||||||
|                 char ch = input.Text[i]; |                 char ch = input.Text[i]; | ||||||
|                 if ((v < 4 || v >= 6) && char.IsAscii(ch) && char.IsLetterOrDigit(ch)) { |                 if ((v < 4 || v >= 6) && char.IsAsciiLetterOrDigit(ch)) { | ||||||
|                     v++; |                     v++; | ||||||
|                     text += char.ToUpper(ch); |                     text += char.ToUpper(ch); | ||||||
|                 } else if (v >= 4 && v < 6 && char.IsAscii(ch) && char.IsLetter(ch)) { |                 } else if (v >= 4 && v < 6 && char.IsAsciiLetter(ch)) { | ||||||
|                     v++; |                     v++; | ||||||
|                     text += char.ToUpper(ch); |                     text += char.ToUpper(ch); | ||||||
|                 } |                 } | ||||||
| @@ -247,7 +247,7 @@ namespace Elwig.Helpers { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             // https://statistik.at/fileadmin/shared/QM/Standarddokumentationen/RW/std_r_land-forstw_register.pdf#page=41 |             // https://statistik.at/fileadmin/shared/QM/Standarddokumentationen/RW/std_r_land-forstw_register.pdf#page=41 | ||||||
|             int s = 0, v = 0; |             int s = 0, v; | ||||||
|             for (int i = 0; i < 6; i++) |             for (int i = 0; i < 6; i++) | ||||||
|                 s += (input.Text[i] - '0') * (7 - i); |                 s += (input.Text[i] - '0') * (7 - i); | ||||||
|             v = (11 - (s % 11)) % 10; |             v = (11 - (s % 11)) % 10; | ||||||
| @@ -263,15 +263,15 @@ namespace Elwig.Helpers { | |||||||
|             int pos = input.CaretIndex; |             int pos = input.CaretIndex; | ||||||
|             for (int i = 0, v = 0; i < input.Text.Length; i++) { |             for (int i = 0, v = 0; i < input.Text.Length; i++) { | ||||||
|                 char ch = input.Text[i]; |                 char ch = input.Text[i]; | ||||||
|                 if (v < 2 && char.IsAscii(ch) && char.IsLetter(ch)) { |                 if (v < 2 && char.IsAsciiLetter(ch)) { | ||||||
|                     v++; |                     v++; | ||||||
|                     text += char.ToUpper(ch); |                     text += char.ToUpper(ch); | ||||||
|                 } else if (v >= 2 && char.IsAscii(ch) && char.IsLetterOrDigit(ch)) { |                 } else if (v >= 2 && char.IsAsciiLetterOrDigit(ch)) { | ||||||
|                     if (text.StartsWith("AT")) { |                     if (text.StartsWith("AT")) { | ||||||
|                         if (v == 2 && (ch == 'u' || ch == 'U')) { |                         if (v == 2 && (ch == 'u' || ch == 'U')) { | ||||||
|                             v++; |                             v++; | ||||||
|                             text += 'U'; |                             text += 'U'; | ||||||
|                         } else if (v > 2 && char.IsDigit(ch)) { |                         } else if (v > 2 && char.IsAsciiDigit(ch)) { | ||||||
|                             v++; |                             v++; | ||||||
|                             text += ch; |                             text += ch; | ||||||
|                         } |                         } | ||||||
|   | |||||||
| @@ -154,7 +154,7 @@ namespace Elwig.Models { | |||||||
|         public virtual BillingAddr BillingAddress { get; private set; } |         public virtual BillingAddr BillingAddress { get; private set; } | ||||||
|  |  | ||||||
|         public int SearchScore(IEnumerable<string> keywords) { |         public int SearchScore(IEnumerable<string> keywords) { | ||||||
|             keywords = keywords.Where(s => s.Length >= 2 || (s.Length > 0 && s.All(c => char.IsDigit(c)))); |             keywords = keywords.Where(s => s.Length >= 2 || (s.Length > 0 && s.All(c => char.IsAsciiDigit(c)))); | ||||||
|             if (!keywords.Any()) |             if (!keywords.Any()) | ||||||
|                 return 0; |                 return 0; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user