验证用户名是否合法
规则 1.长度在6-12之间 2.不能数字开头 3.只能包含数字,大小写字母,下划线
def main(args: Array[String]): Unit = {
val name1 ="1admin"//不合法,是数字开头
val name2 ="admin123"//合法
val name3 ="admin"//不合法,长度不够
val name4 ="ad_123Ab"//合法
val name5 ="admin123!"//不合法,! 是不允许的
//通过正则表达式来判断
val reg ="[a-zA-Z_]\\w{5,11}".r // /w等价于【0-9A-Za-z_】63个字符
println(reg.matches(name1)) //matches对字符串做验证,返回boolean值
println(reg.matches(name2)) //matches对字符串做验证,返回boolean值
println(reg.matches(name3)) //matches对字符串做验证,返回boolean值
println(reg.matches(name4)) //matches对字符串做验证,返回boolean值
}
}
运行结果
替换 把字符串中的手机号打码 类似于138****5678
object test2 {
def main(args: Array[String]): Unit = {
var str = "张先生,手机号:13812345678 你买的xxx到了"
//开始你的代码
val reg ="(1[3-9]\\d)(\\d{4})(\\d{4})".r
//reg.replaceAllIn的功能:在目标字符串中,用正则表达式reg去查找,找到之后,用 箭头函数 的返回值
//来替换.
//m 就是正则表达式找到的内容
//如果正则表达式中有(),则 可以通过m.group来找到对应的分组
val newStr = reg.replaceAllIn(str,(m)=>{
println(s":${m.group(1)}")
println(s":${m.group(2)}")
println(s":${m.group(3)}")
println("-" * 40)
m.group(1) + "****" + m.group(3)
})
println(newStr)
}
}
案例
把字符串中的身份证号打码
object test3 {
def main(args: Array[String]): Unit = {
var str = "张先生,ID:420984200406295610"
val reg ="(\\d{10})(\\d{6})(\\d[\\dX])".r
val newStr = reg.replaceAllIn(str, (m) => {
println(s":${m.group(1)}")
println(s":${m.group(2)}")
println(s":${m.group(3)}")
println("-" * 40)
m.group(1) + "******" + m.group(3)
})
println(newStr)
}
}
运行结果