pull/83/head
kunfei 6 years ago
parent 93d4bba524
commit 25aba898bf
  1. 63
      app/src/main/java/io/legado/app/utils/StringExtensions.kt

@ -4,34 +4,41 @@ package io.legado.app.utils
fun String?.safeTrim() = if (this.isNullOrBlank()) null else this.trim()
fun String?.isAbsUrl() = if (this.isNullOrBlank()) false else this.startsWith("http://", true)
|| this.startsWith("https://", true)
fun String?.isJson(): Boolean = this?.run {
val str = this.trim()
when {
str.startsWith("{") && str.endsWith("}") -> true
str.startsWith("[") && str.endsWith("]") -> true
else -> false
}
} ?: false
fun String?.isJsonObject(): Boolean = this?.run {
val str = this.trim()
str.startsWith("{") && str.endsWith("}")
} ?: false
fun String?.isJsonArray(): Boolean = this?.run {
val str = this.trim()
str.startsWith("[") && str.endsWith("]")
} ?: false
fun String?.htmlFormat(): String = if (this.isNullOrBlank()) "" else
this.replace("(?i)<(br[\\s/]*|/*p\\b.*?|/*div\\b.*?)>".toRegex(), "\n")// 替换特定标签为换行符
.replace("<[script>]*.*?>|&nbsp;".toRegex(), "")// 删除script标签对和空格转义符
.replace("\\s*\\n+\\s*".toRegex(), "\n  ")// 移除空行,并增加段前缩进2个汉字
.replace("^[\\n\\s]+".toRegex(), "  ")//移除开头空行,并增加段前缩进2个汉字
.replace("[\\n\\s]+$".toRegex(), "") //移除尾部空行
fun String?.isAbsUrl() =
this?.let {
it.startsWith("http://", true)
|| it.startsWith("https://", true)
} ?: false
fun String?.isJson(): Boolean =
this?.run {
val str = this.trim()
when {
str.startsWith("{") && str.endsWith("}") -> true
str.startsWith("[") && str.endsWith("]") -> true
else -> false
}
} ?: false
fun String?.isJsonObject(): Boolean =
this?.run {
val str = this.trim()
str.startsWith("{") && str.endsWith("}")
} ?: false
fun String?.isJsonArray(): Boolean =
this?.run {
val str = this.trim()
str.startsWith("[") && str.endsWith("]")
} ?: false
fun String?.htmlFormat(): String =
this?.replace("(?i)<(br[\\s/]*|/*p\\b.*?|/*div\\b.*?)>".toRegex(), "\n")
?.replace("<[script>]*.*?>|&nbsp;".toRegex(), "")
?.replace("\\s*\\n+\\s*".toRegex(), "\n  ")
?.replace("^[\\n\\s]+".toRegex(), "  ")
?.replace("[\\n\\s]+$".toRegex(), "")
?: ""
fun String.splitNotBlank(vararg delimiter: String): Array<String> = run {
this.split(*delimiter).map { it.trim() }.filterNot { it.isBlank() }.toTypedArray()

Loading…
Cancel
Save