I might be wrong, but I don't think a user-inputted string of "8[space]000" is considered an Integer. In order to use the Int validator, you'll need to filter the input to remove all non-integer characters.
When it comes to displaying the number back to the user (for example, in a view template), you can use the built-in number_format() function to make an int human-readable. -- Hector On Tue, Feb 23, 2010 at 8:54 AM, Nicolas Grevet <[email protected]> wrote: > Hello, > > I repeat the question: 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. > What are we supposed to do? > > I filed an issue there: > http://framework.zend.com/issues/browse/ZF-9242 > > Regards, > - Nicolas Grevet >
