ZF-9242: Zend_Locale_Format seriously broken with non-english locale regex format (french)
Is Zend_Validate_Int seriously broken with non-english locales or is it just me? Because we're facing two different problems.
- In order to validate an integer using the french format (with spaces as thousands separator, ie: 8 000), the framework expects us to input digits separated with non-breakable spaces (ie: 8(\xA0)000). Is this a sad joke? Because I don't even know how to input a non-breakable space using my keyboard. Regular spaces are not allowed. Sure you can still avoid thousands separators, but in this case, a second problem appears..
(this issue is discussed here, I can understand it's not really an issue, but still: http://framework.zend.com/issues/browse/ZF-7175)
- So you can't validate a french space-separated number, let's use a number with no separators at all. Unfortunately, that does not seem to be a solution either, since you didn't specified the 'u' modifier in the preg_match() that validates the number format in Zend_Locale_Format (line 503). And it seems that the non-breakable space is a special UTF-8 character that you can't use in UTF-8 regex without the 'u' modifier. At least, adding the 'u' modifier makes it work like a charm.
So basically, you can't use integers in french.