不积跬步,无以至千里

正则表达式


今天写了个bug,原因是正则表达式配错了,测试的时候又漏掉了这个case.

简化的代码如上

    var password="12345a6789"
	if len(password)<8||len(password)>16{
		fmt.Println(1)
	}
	// 判断是否为纯数字
	if regexp.MustCompile(`[0-9]*`).MatchString(password){
		fmt.Println(2)
	}
	// 判断是否包含空格
	if strings.Contains(password," "){
		fmt.Println(3)
	}
	//仅支持数字,字母和字符
	if !regexp.MustCompile(`^[\w~!@#$%^&*()+,.:;=<>?/|\-[\]\\]{8,16}$`).MatchString(password) {
		fmt.Println(4)
	}
	fmt.Println(5)

出问题的是’判断是否为纯数字的校验’,正确的方式应该是^[0-9]*$

总结下正则表达式的常见用法和常用的正则表达式: