Помогите с применением исключения в preg_replace - PullRequest
0 голосов
/ 29 июля 2010

Здравствуйте. Как я могу разрешить только цифру [^ 0-9] и знак минус перед цифрой.Пример: Действительный = -1 ...- 9, Неверный = --1 -...

Ответы [ 3 ]

2 голосов
/ 29 июля 2010

Просто удалите все недопустимые символы и проверьте, имеет ли остальные действительный формат:

$cleaned = preg_replace('/[^-0-9]+/', '', $str);
if (preg_match('/^-?[0-9]+$/', $cleaned)) {
    // now valid
}

Хорошо, вот еще одно предложение:

preg_replace('/.*?(-?\d+).*/', '$1', $str)
1 голос
/ 29 июля 2010
/^-\d+$/

или минус необязательный

/^-?\d+$/
1 голос
/ 29 июля 2010

Должно быть так же просто, как ...

preg_match('#^-?[0-9]$#', $input);

Обновление

preg_replace('#-\d#', $replacement, $input);
...