Веб-фреймворки, такие как Rails и Django, имеют встроенную поддержку «слагов», которые используются для создания читаемых и оптимизированных для SEO URL-адресов:
Строка слагов обычно содержит только символы a-z
, 0-9
и -
и, следовательно, может быть записана без экранирования URL (например, "foo% 20bar").
Я ищу функцию slug Java, которая при наличии любой допустимой строки Unicode вернет представление slug (a-z
, 0-9
и -
).
Тривиальная функция слага будет выглядеть примерно так:
return input.toLowerCase().replaceAll("[^a-z0-9-]", "");
Однако эта реализация не будет обрабатывать интернационализацию и акценты (ë
> e
). Одним из способов обойти это было бы перечисление всех особых случаев, но это было бы не очень элегантно. Я ищу что-то более продуманное и общее.
Мой вопрос:
- Каков наиболее общий / практичный способ генерирования слагов типа Django / Rails в Java?