PHP preg_replace regexp for dash


PHP preg_replace regexp for dash

我正在尝试替换字符串中不是字母、数字或破折号"-"的任何内容。

如何修改此行以包含破折号?

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

我只是把它插入那里吗?

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

转义-因为它是正则表达式的特殊字符:

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

只需在类的末尾添加-[^a-z0-9-])。

-在类结束时没有特殊含义。 或者,使用反斜杠对其进行转义。