编程语言
首页 > 编程语言> > 如何在Java中将“ Lorem 3 ipsum dolor sit amet”翻译成SEO友好的“ Lorem-3-ipsum-dolor-sit-amet”?

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

作者:互联网

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

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

如果他们输入类似

Lorem 3 ipsum dolor sit amet

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

Lorem-3-ipsum-dolor-sit-amet

解决方法:

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

这样的函数如下所示:

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

它基本上执行以下操作:

>小写字符串
>删除组合diacritical marks(在Normalizer从实际字符中“提取”了它们之后)
>用连字符替换非字母数字字符

也可以看看:

> JSP 2.0 SEO friendly links encoding

标签:friendly-url,java,regex,seo
来源: https://codeday.me/bug/20191013/1910233.html