Подготовка номера с использованием сокращений - PullRequest
0 голосов
/ 15 апреля 2011

RegEx для BMHT в последовательности - мой предыдущий пост. Я хочу построить число, используя сокращения и, конечно, с помощью регулярных выражений.

Теперь я знаю, как проверить число с сокращениями BMTH.

Теперь моя следующая и последняя цель - построить число, используя сокращения. например -2T2H22.55 должен отображаться как -2,222.55 -2M2H22,63 должен отображаться как -2,000222,63

Помощь оценена.

1 Ответ

3 голосов
/ 15 апреля 2011

Язык сценариев Flex, ActionScript, является реализацией ECMAScript, такой как JavaScript, поэтому литералы регулярных выражений должны быть разделены косыми чертами, например: /^(?:\d+B)?(?:\d{1,3}M)?(?:\d{1,3}T)?(?:\d{1}H)?(\.[0-9]*)?/.

Но у этого регулярного выражения есть некоторые проблемы. Во-первых, вы не учитываете знак минус или две цифры после сотен. И, хотя десятичная точка может быть необязательной, если она равна , вам нужно, чтобы за ней следовала хотя бы одна цифра (поэтому +, а не * в этой последней группе).

Наконец, вам нужно захватить различные компоненты, чтобы вы могли использовать их для построения числа. Вот мой результат:

/^(-?)(?:(\d+)B)?(?:(\d{1,3})M)?(?:(\d{1,3})T)?(?:(\d)H)?(\d{0,2})(\.\d+)?$/

Знак минус, если он присутствует, будет зафиксирован в группе $1. Остальные компоненты будут в группах от $2 до $7. Вы можете использовать их в функции обратного вызова для создания номера. Также обратите внимание, что все в этом регулярном выражении не является обязательным; он будет соответствовать пустой строке или просто дефису, поэтому вам нужно проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...