我有一个字符串:
$string = "Hello World!";
我想把它变成一个 URL 友好的标签,我已经开发了一个函数来做到这一点:
function stripJunk($string){
$string = str_replace(" ", "-", $string);
$string = preg_replace("/[^a-zA-Z]\s/", "", $string);
$string = strtolower($string);
return $string;
}
但是,当我在$string
上面运行时,我得到以下信息:
$string = "hello-world!";
似乎有些字符从我的 preg_replace 中溜走了,尽管据我所知,它们不应该是这样。
它应该是这样的:
$string = "hello-world";
这里发生了什么?(这应该很容易做柠檬汁!)
编辑1:我不知道正则表达式是初学者的东西,但无论如何。此外,删除我的字符串中的 \s 不会产生所需的结果。
期望的结果是:
- 所有空格都转换为破折号。
- 所有剩余的不是 AZ 或 0-9 的字符都将被删除。
- 然后将字符串转换为小写。
编辑 2+:稍微清理了我的代码。