Raymond Chen just gave me a "duh" moment, by pointing out the obvious-only-if-you-think-about-it. Char.IsDigit() doesn't mean 'IsZeroToNineInEnglish', it means 'is in the decimal range of 0 to 9' and darnnit if there aren't other ways (other than 0,1,2,3,4,5,6,7,8,9) to express them! :)
So let's run an experiment. class Program { public static void Main(string[] args) { System.Console.WriteLine( System.Text.RegularExpressions.Regex.Match( "\x0661\x0662\x0663", // "١٢٣" "^\\d+$").Success); System.Console.WriteLine( System.Char.IsDigit('\x0661')); } } The characters in the string are Arabic digits, but they are still digits, as evidenced by the program output: True TrueUh-oh. Do you have this bug in your parameter validation? (More examples..) If you use a pattern like @"^\d$" to validate that you receive only digits, and then later use System.Int32.Parse() to parse it, then I can hand you some Arabic digits and sit back and watch the fireworks. The Arabic digits will pass your validation expression, but when you get around to using it, boom, you throw a System.FormatException and die. [Raymond Chen]
So let's run an experiment.
class Program { public static void Main(string[] args) { System.Console.WriteLine( System.Text.RegularExpressions.Regex.Match( "\x0661\x0662\x0663", // "١٢٣" "^\\d+$").Success); System.Console.WriteLine( System.Char.IsDigit('\x0661')); } }
The characters in the string are Arabic digits, but they are still digits, as evidenced by the program output:
True True
@"^\d$"
System.Int32.Parse()
System.FormatException
Arabic speakers (مرحبًا, كيف حالك ؟ and forgive me, it's been college since I studied Arabic) how to you handle numeric validation in JavaScript AND guarantee that the JavaScript you use on the client-side is semantically equivalent to the server-side code?
Either way, my friends, read, grok, and be enlightened. Muy interesante.
Scott at DevReach in Bulgaria in October
Developer Stand up Comedy - Coding 4 Fun
TechDays/DevDays Netherlands and Belgium:
Posts by Category Posts by Month
Greatest Hits Dev Tools List