有关在preg_place中应用异常的帮助

2022-03-23 00:00:00 regex php preg-replace sanitization
您好,我怎样才能只允许数字[^0-9]和数字前面的减号。示例: 有效=-1.-9,无效=--1-.


解决方案

只需删除每个无效字符,并检查其余字符的格式是否有效:

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

好的,这里还有一个建议:

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

相关文章