2010-06-16 28 views

Trả lời

31
preg_replace("/[^a-zA-Z0-9\s\p{P}]/", "", $str); 

Ví dụ:

php > echo preg_replace("/[^a-zA-Z0-9\s\p{P}]/", "", "⟺f✆oo☃. ba⟗r!"); 
foo. bar! 

\p{P} trận đấu tất cả các ký tự dấu Unicode (xem Unicode character properties). Nếu bạn chỉ muốn cho phép dấu chấm câu cụ thể, chỉ cần thêm chúng vào lớp ký tự phủ định. Ví dụ:

preg_replace("/[^a-zA-Z0-9\s.?!]/", "", $str); 
+0

để có thể thêm:. ? ! chính xác – Tedd

+0

Thứ hai sẽ. Đầu tiên cho phép tất cả các dấu chấm câu. –

+0

Dường như dải TẤT CẢ các ký tự: ( – Tedd

3

Bạn sẽ phải liệt kê các dấu chấm câu một cách rõ ràng như không có viết tắt cho đó (ví dụ \s là viết tắt cho ký tự khoảng trắng).

preg_replace('/[^a-zA-Z0-9\s\-=+\|[email protected]#$%^&*()`~\[\]{};:\'",<.>\/?]/', '', $str); 
0
$str = trim($str); 
$str = trim($str, "\x00..\x1F"); 
$str = str_replace(array("&quot;","&#039;","&amp;","&lt;","&gt;"),' ',$str); 
$str = preg_replace('/[^0-9a-zA-Z-]/', ' ', $str); 
$str = preg_replace('/\s\s+/', ' ', $str); 
$str = trim($str); 
$str = preg_replace('/[ ]/', '-', $str); 

Hope this helps.

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