2010-01-20 40 views

Trả lời

13

Hãy thử điều này:

$clean = preg_replace('/[^\\d.]+/', '', $str); 

Nhưng bạn cũng có thể sử dụng [^0-9.] nếu bạn quen thuộc hơn với điều đó. Lưu ý rằng . không cần phải được thoát trong tuyên bố lớp nhân vật vì nó không phải là ký tự đặc biệt bên trong (chỉ ], \ và tùy thuộc vào ngữ cảnh cũng ^-).

+0

không phải '+', mà đúng hơn là 'g' :) – Tomalak

+1

@Tomalak: Không có sửa đổi * g * trong PCRE của PHP. Thay thế luôn là toàn cầu. – Gumbo

+0

Cảm ơn bạn đã làm rõ, tôi không biết điều đó. – Tomalak

5

Hủy bỏ tất cả những gì phù hợp với

[^0-9.] 

ví dụ

$output = preg_replace("/[^0-9.]/", "", $input); 
Các vấn đề liên quan