gpt4 book ai didi

spring - 如何创建 URL slug 扩展?

转载 作者:行者123 更新时间:2023-12-02 13:20:31 24 4
gpt4 key购买 nike

我正在使用 Spring 创建一个博客应用程序和 Kotlin .对于每篇文章,我需要以编程方式生成一个 slug。例如,如果文章标题是“吉娃娃如何过马路”,则 slug 应该是“吉娃娃狗如何过马路”。

对于上下文,我的实体文件(截断)看起来像:

@Entity
class Article(
var title: String,
var slug: String = I_WANT_THIS_TO_BE_A_SLUG_FROM_THE_TITLE)

如何使用 Kotlin 扩展来实现这一点?

最佳答案

在您的 Extensions.kt文件,添加以下代码:

fun String.toSlug() = toLowerCase()
.replace("\n", " ")
.replace("[^a-z\\d\\s]".toRegex(), " ")
.split(" ")
.joinToString("-")
.replace("-+".toRegex(), "-")

然后在您的实体文件中使用扩展名:

@Entity
class Article(
var title: String,
var slug: String = title.toSlug())

此外,如果您不希望 slug 可变,请将其添加为计算属性:

@Entity
class Article(
var title: String) {
val slug get() = title.toSlug()
}

引用

我从 Building web applications with Spring Boot and Kotlin 了解了 slug 扩展。 (由 Sébastien Deleuze 撰写)。见 Extensions.kt lines 28 - 33完整的上下文。

另外,感谢 Dave Leeds用于推荐计算的属性选项。查看他的 Kotlin 博客 Dave Leeds on Kotlin深入的概念和指南。

关于spring - 如何创建 URL slug 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57298658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com