您好我怎么才能只允许数字[^ 0-9]和数字前面的减号。示例: 有效值= -1 ...- 9,无效= - 1 -...
答案 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+$/