小编典典

如何在Java中将“ Lorem 3 ipsum dolor sit amet”翻译成SEO友好的“ Lorem-3-ipsum-dolor-sit- amet”?

java

在我的博客应用程序中,用户可以输入任何文本作为其条目的标题,然后我根据该文本生成一个URL。

我验证其标题以确保其标题 仅包含字母和数字

如果他们输入类似

Lorem 3 ipsum dolor sit amet

我该如何生成此文本的SEO友好版本:

Lorem-3-ipsum-dolor-sit-amet

阅读 336

收藏
2020-11-30

共1个答案

小编典典

实际上,这实际上不像用连字符替换空格那样简单。您通常还希望将其全部变为小写并规范化/替换变音符号,例如á,ö,è等,这些都是 无效的
URL字符。唯一有效的字符在此Wikipedia页面的第二表中被列为“未保留的字符” 。

这样的函数如下所示:

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

它基本上执行以下操作:

  • 小写字符串
  • 删除组合的变音标记(在Normalizer从实际字符中“提取”了它们之后)
  • 用连字符替换非字母数字字符

也可以看看:

2020-11-30