创建SEO友好URI字符串的最佳方法

Mat*_* B. 9 java string uri char slug

该方法应该只允许0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-URI字符串中的" "字符.

制作精美的SEO URI字符串的最佳方法是什么?

Bal*_*usC 31

这就是普遍的共识:

  1. 小写字符串.

    string = string.toLowerCase();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 标准化所有字符并去除所有变音符号(例如é,ö,à变为e,o,a).

    string = Normalizer.normalize(string, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
    
    Run Code Online (Sandbox Code Playgroud)
  3. 替换所有剩余的非字母数字字符,-并在必要时折叠.

    string = string.replaceAll("[^\\p{Alnum}]+", "-");
    
    Run Code Online (Sandbox Code Playgroud)

总结如下:

public static String toPrettyURL(String string) {
    return Normalizer.normalize(string.toLowerCase(), Form.NFD)
        .replaceAll("\\p{InCombiningDiacriticalMarks}+", "")
        .replaceAll("[^\\p{Alnum}]+", "-");
}
Run Code Online (Sandbox Code Playgroud)

  • 还建议删除前导和尾随标点符号.//删除尾随标点符号.replaceAll("[^ a-z0-9] + $","")//删除前导标点符号.replaceAll("^ [^ a-z0-9] +",""); (4认同)