2016-05-05 13 views
2

Почему Globalize 9,999.99 in Английский local (en-CA), но не 9 999,99 Французский (fr-CA). Является ли пространство причиной проблемы в этом сценарии?Почему плагин jQuery глобализует редизайн 9,999.99 на английском языке (en-CA), но не 9 999,99 на французском?

Это случается, когда я вызываю номер метода Parser. NaN возвращается, если я вхожу в 9 999,99, но это должно быть принято, так как форматтер возвращает это.

+0

Эй Rushino, извините, если мой ответ на вопрос [# 613] (https://github.com/jquery/globalize/issues/613) неясно. Я только что ответил здесь, надеясь, что это поможет выяснить это. –

ответ

2

Краткая ответная мысль: из-за того, что в текущем глобализе отсутствует функция парсера, называемая «Loose Matching» https://github.com/jquery/globalize/issues/292.

Короткий конкретный ответ: пространство и свободное пространство - это два разных символа. «Пространство» разделителя группировки fr-CA не является обычным пространством (байт-код 32 = hex 20), но это пространство без разрыва (байт-код 160 = hex A0). Попробуйте «дезинфицировать» свой ввод с input.replace("\x20", "\xa0"), прежде чем предоставлять его анализатору в качестве обходного пути.

Вы можете найти подробную информацию на https://github.com/jquery/globalize/issues/288

Я надеюсь, что помогает :)

+0

Спасибо! Планируется ли исправление? (не возражаете, когда просто хотели узнать, был ли запланирован) – Rushino

+0

value.replace (//g, '') работают, но ваша версия не имеет никакой идеи? И что среднее xa0? – Rushino

+0

Об исправлении, в настоящее время никто не проявил интереса к работе над этой функцией, но я хотел бы дать руководство для тех, кто хочет (чтобы начать с того, что находится в # 292) ... –