如何在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