PHP регулярное выражение для проверки валюты - PullRequest
1 голос
/ 22 марта 2012

Мне нужно регулярное выражение для проверки валюты. Допустимые значения:

1209
1889.0
578247.00
75646.50
But not 44565.12

Второе число после запятой должно быть 0. А доступный диапазон валют - 0.1-9999999.9. Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

используйте этот шаблон: ([1-9]\d{,6}|0)(\.\d0?)?
с этим шаблоном будет разрешено 1234.2. Это нормально?Я отредактировал шаблон, посмотрите.
Первая цифра не может быть 0, если перед точкой стоят другие цифры.Таким образом, число должно начинаться с ненулевой цифры и может иметь не более 6 цифр после первой и до точки или может иметь только ноль до точки (эта часть ([1-9]\d{,6}|0)).\d0? означает одну цифру и после нее может быть ноль.\. это просто точка.

0 голосов
/ 22 марта 2012

Как и другие считают, что регулярное выражение - не лучший способ работы с числами.

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

<?php

$a = array(
1209,
1889.0,
578247.00,
75646.50,
44565.12
);

foreach ($a as $b) {
    echo "$b - ";
    echo ($b*100 % 50) == 0 ? 'PASS' : 'FAIL';
    echo PHP_EOL;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...