|
@@ -226,7 +226,7 @@ object BaseUtil {
|
|
|
}
|
|
|
|
|
|
def title(ygname: String, bgname: String, reason: String): String = {
|
|
|
- Seq(replaceChar(ygname),replaceChar(bgname),reason).filter(s=>StringUtils.isNotBlank(s)).mkString(",")
|
|
|
+ Seq(replaceChar(ygname), replaceChar(bgname), reason).filter(s => StringUtils.isNotBlank(s)).mkString(",")
|
|
|
}
|
|
|
|
|
|
def trimBlack(s: String): String = {
|
|
@@ -321,6 +321,21 @@ object BaseUtil {
|
|
|
null
|
|
|
}
|
|
|
|
|
|
+ private val id_card_pattern = "^[1-9]\\d{5}(19|20)\\d{2}((0[1-9])|(1[0-2])|([0-1]\\*{1,2})|\\*{2})(([0-2][1-9])|10|20|30|31|\\*{2})\\d{3}[0-9Xx]$".r
|
|
|
+
|
|
|
+ private lazy val maxYear = BaseUtil.nowDate(pattern = "yyyy").toInt
|
|
|
+
|
|
|
+ def is_id_card(str: String): Boolean = {
|
|
|
+ if (StringUtils.isEmpty(str))
|
|
|
+ return false
|
|
|
+
|
|
|
+ if (id_card_pattern matches str) {
|
|
|
+ val d = str.substring(6, 10).toInt
|
|
|
+ d <= maxYear
|
|
|
+ } else
|
|
|
+ false
|
|
|
+ }
|
|
|
+
|
|
|
val pat = "(?<province>[^省]+省|.+自治区)?(?<city>[^自治州]+自治州|[^市]+市|[^盟]+盟|[^地区]+地区|.+区划)?(?<district>[^市]+市|[^县]+县|[^旗]+旗|.+区)?".r
|
|
|
|
|
|
/**
|
|
@@ -341,12 +356,12 @@ object BaseUtil {
|
|
|
}
|
|
|
|
|
|
def main(args: Array[String]): Unit = {
|
|
|
- println(title("xx",null,"reason"))
|
|
|
- println(parseAddress("大石桥市人民法院"))
|
|
|
- println(case_no_trim("(2015)怀执字第03601号号"))
|
|
|
- val seq = Seq("1", "3", "2", "7").mkString("\001")
|
|
|
- println(sortString(seq))
|
|
|
- println(id_card_trim("41111119990****062x"))
|
|
|
+// println(title("xx", null, "reason"))
|
|
|
+// println(parseAddress("大石桥市人民法院"))
|
|
|
+// println(case_no_trim("(2015)怀执字第03601号号"))
|
|
|
+// val seq = Seq("1", "3", "2", "7").mkString("\001")
|
|
|
+// println(sortString(seq))
|
|
|
+ println(is_id_card("4111111999****062x"))
|
|
|
}
|
|
|
|
|
|
}
|