пятница, 27 марта 2009 г.

Проецирование всех этих "странных" цифр в "0"-"9"

Это перевод Mapping all those "strange" digits to "0" through "9". Автор: Реймонд Чен.

В предыдущей статье, я обсудил вопрос о том, что метод Char.IsDigit и его Win32-коллега GetStringTypeEx сообщают, что некие вещи, отличные от "0"-"9", также являются цифрами.

Если вас действительно волнуют только "0"-"9", то вы можете проверять их явно. Например, используйте [0-9] вместо \d в регулярных выражениях. Кроме того, для регулярных выражений, вы можете включить режим ECMA через RegexOptions.ECMAScript. Заметим, что этот режим контролирует больше, чем просто интерпретация класса символа \d, поэтому не забудьте внимательно прочитать, что вы действительно хотите получить всё ECMA поведение.

Мне также указали, что есть способ превратить все эти "странные" цифры в обычный диапазон "0"-"9", а именно: вызвав функцию FoldString с флагом MAP_FOLDDIGITS (я ставлю слово "странный" в кавычки, потому что, конечно же, они нисколько не странные. А просто другие).

Этот способ переводит цифры, но не помогает с десятичными точками, так что вам еще придется иметь дело с правильной интерпретацией "1,500" либо как "одной тысячи пятисот" (как было бы в Соединенных Штатах), либо как "один с половиной" (как это будет в большинстве стран Европы). Для этого вам нужно вызвать GetLocaleInfo, чтобы получить строки LOCAL_SDECIMAL и LOCAL_STHOUSAND.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.