诸如 Rails 和 Django 之类的 Web 框架内置了对“slugs”的支持,这些“slugs”用于生成可读且对 SEO 友好的 URL:
一个 slug 字符串通常只包含 characters a-z
,0-9
因此-
可以在没有 URL 转义的情况下编写(想想“foo%20bar”)。
我正在寻找一个 Java slug 函数,它给定任何有效的 Unicode 字符串都将返回一个 slug 表示(a-z
和0-9
)-
。
一个微不足道的 slug 函数将类似于以下内容:
return input.toLowerCase().replaceAll("[^a-z0-9-]", "");
但是,此实现不会处理国际化和重音符号 ( ë
> e
)。解决这个问题的一种方法是枚举所有特殊情况,但这不是很优雅。我正在寻找更深思熟虑和一般的东西。
我的问题:
- 在 Java 中生成 Django/Rails 类型 slug 的最通用/实用的方法是什么?