在我的博客应用程序中,用户可以输入任何文本作为其条目的标题,然后我根据该文本生成一个URL。
我验证其标题以确保其标题 仅包含字母和数字 。
如果他们输入类似
Lorem 3 ipsum dolor sit amet
我该如何生成此文本的SEO友好版本:
Lorem-3-ipsum-dolor-sit-amet
实际上,这实际上不像用连字符替换空格那样简单。您通常还希望将其全部变为小写并规范化/替换变音符号,例如á,ö,è等,这些都是 无效的 URL字符。唯一有效的字符在此Wikipedia页面的第二表中被列为“未保留的字符” 。
这样的函数如下所示:
public static String prettyURL(String string) { return Normalizer.normalize(string.toLowerCase(), Form.NFD) .replaceAll("\\p{InCombiningDiacriticalMarks}+", "") .replaceAll("[^\\p{Alnum}]+", "-"); }
它基本上执行以下操作: