0

我目前正在使用看起来非常复杂且不必要的解决方案来形成所需的字符串。

该字符串可以有任何标点符号,并包括斜线。

例如,这个字符串:

Test Ripple, it\'s a comic book one!

使用我目前的方法:

str_replace(" ", "-", trim(preg_replace('/[^a-z0-9]+/i', ' ', str_replace("'", "", stripslashes($string)))))

返回正确的结果:

Test-Ripple-its-a-comic-book-one

以下是我当前(较差的)解决方案为实现所需输出所做的细分:-

  1. 从字符串中去除所有斜线
  2. 使用 str_replace 删除任何撇号
  3. 使用 preg_replace 删除任何剩余的标点符号并将其替换为空格
  4. 从字符串的开头/结尾剪掉任何可能由标点符号引起的多余空格。
  5. 用'-'替换所有空格

但必须有更好、更有效的方法。任何人都可以帮忙吗?

4

1 回答 1

1

就我个人而言,它看起来不错,但我会做一点小改动。

改变

preg_replace("/[^a-z0-9]+/i"

到以下

preg_replace("/[^a-zA-Z0-9\s]/"
于 2012-09-12T20:45:59.597 回答