2012-06-04 94 views
4

我想替換字符串中不是字母,數字或破折號「 - 」的任何東西。PHP preg_replace破折號正則表達式

如何修改此行以包含短劃線?

$link = preg_replace('/[^a-z0-9]/', "", strtolower($_POST['link_name'])); 

我只是把它插入那裏嗎?

回答

9

你必須逃離-,因爲它是正則表達式特殊字符:

$link = preg_replace('/[^a-z0-9\-]/', '', strtolower($_POST['link_name'])); 
6

只需添加-到類([^a-z0-9-])結束。

-在課程結束時沒有特別的意義。或者,使用反斜槓進行轉義。