帮助在preg_replace中应用异常

时间:2010-07-29 18:36:29

标签: php regex preg-replace sanitization

您好我怎么才能只允许数字[^ 0-9]和数字前面的减号。示例: 有效值= -1 ...- 9,无效= - 1 -...

3 个答案:

答案 0 :(得分:2)

只需删除所有无效字符,然后检查其余字符是否有效:

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

好的,这是另一个建议:

preg_replace('/.*?(-?\d+).*/', '$1', $str)

答案 1 :(得分:1)

应该像......一样简单。

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

<强>更新

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

答案 2 :(得分:1)

/^-\d+$/

或如果减号是可选的

/^-?\d+$/