Regex фиксирует окончание цен .00 и, 00 - PullRequest
0 голосов
/ 05 декабря 2018

Я хотел бы набрать php preg_match и удалить все окончания цен, но мое регулярное выражение не работает.

Например,

1201203,00
123,123.23 
12.23
10.00
10

Into

1201203
123,123
12
10
10

Вот регулярное выражение, которое у меня есть:

[,|.]\d{2}$

1 Ответ

0 голосов
/ 05 декабря 2018

Ваше регулярное выражение в основном правильно, хотя вам не нужно | в вашем наборе символов, оно должно быть просто [,.] (или вы можете использовать (\.|,)).Таким образом, вы можете просто использовать preg_replace:

$value = preg_replace('/[,.]\d{2}$/', '', $value);

Например:

$values = array('1201203,00', '123,123.23', '12.23', '10.00', '10');
foreach ($values as &$value) {
    $value = preg_replace('/[,.]\d{2}$/', '', $value);
}
print_r($values);

Выход:

Array (
    [0] => 1201203
    [1] => 123,123
    [2] => 12
    [3] => 10
    [4] => 10
)

Демонстрация на 3v4l.org

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