2010-01-22 37 views

Trả lời

46
$str = preg_replace('/[^0-9.]+/', '', $str); 

thay thế chuỗi con mà không bao gồm các chữ số hoặc. không có gì.

6
preg_replace('/[^0-9.]/', '', $string); 
+0

Thoát khỏi dấu chấm. – Robin

+0

Robin, không cần thiết. Tôi đã thử nghiệm nó trước khi đăng và hoạt động OK. –

+1

@Robin, bạn sẽ cần thoát khỏi khoảng thời gian nếu nó nằm ngoài ngoặc vuông []. bên trong dấu ngoặc vuông, dấu chấm không được coi là ký tự đặc biệt –

1
$input = 'some str1ng 234'; 
$newString = preg_replace("/[^0-9.]/", '', $input); 
0

Để thỏa mãn sự tò mò của tôi, tôi được hỏi về tốc độ của các câu trả lời được đề xuất và như thể hiện trong preg_replace speed optimisation/ nó là (nhiều) nhanh hơn để sử dụng str_replace() hơn preg_replace().

Vì vậy, bạn có thể muốn sử dụng str_replace() để thay thế.

+0

Nhưng bạn không thể sử dụng 'str_replace()' trong trường hợp này, trừ khi bạn muốn mã hóa tất cả các ký tự không phải là số. –

+1

@kemp, hm ... đúng vậy. Đó sẽ là quá nhiều :) – Veger

Các vấn đề liên quan