regex_helper.go 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package utils
  2. import (
  3. "fmt"
  4. "regexp"
  5. )
  6. // 正整数正则
  7. func PositiveIntegerRegexp() *regexp.Regexp {
  8. reg, _ := regexp.Compile("^[1-9][0-9]*$")
  9. return reg
  10. }
  11. // 手机号正则 不那么严谨的
  12. func CellPhoneRegexp() *regexp.Regexp {
  13. reg, _ := regexp.Compile("^1\\d{10}$")
  14. return reg
  15. }
  16. // 固话正则
  17. func TelPhoneRegexp() *regexp.Regexp {
  18. // reg, _ := regexp.Compile("^0\\d{2,3}-?\\d{7,8}$")
  19. reg, _ := regexp.Compile("^0\\d{2,3}-?\\d{7,8}$")
  20. return reg
  21. }
  22. // 手机号或固话正则
  23. func PhoneRegexp() *regexp.Regexp {
  24. reg, _ := regexp.Compile("^(0\\d{2,3}-?\\d{7,8}$)|(1\\d{10}$)")
  25. return reg
  26. }
  27. // tests
  28. func PositiveIntegerRegexpTest() {
  29. reg := PositiveIntegerRegexp()
  30. fmt.Println("12 是否匹配:", reg.MatchString("12"))
  31. fmt.Println("1 是否匹配:", reg.MatchString("1"))
  32. fmt.Println("980030 是否匹配:", reg.MatchString("980030"))
  33. fmt.Println("01 是否匹配:", reg.MatchString("01"))
  34. fmt.Println("asd1asd 是否匹配:", reg.MatchString("asd1asd"))
  35. fmt.Println("a12 是否匹配:", reg.MatchString("a12"))
  36. fmt.Println("12a 是否匹配:", reg.MatchString("12a"))
  37. fmt.Println("-12 是否匹配:", reg.MatchString("-12"))
  38. fmt.Println("12.1 是否匹配:", reg.MatchString("12.1"))
  39. fmt.Println("14j2a 是否匹配:", reg.MatchString("14j2a"))
  40. }
  41. func CellPhoneRegexpTest() {
  42. reg := CellPhoneRegexp()
  43. fmt.Println("13632250447 是否匹配:", reg.MatchString("13632250447"))
  44. fmt.Println("12000000000 是否匹配:", reg.MatchString("12000000000"))
  45. fmt.Println("30001212325 是否匹配:", reg.MatchString("30001212325"))
  46. fmt.Println("1233123 是否匹配:", reg.MatchString("1233123"))
  47. fmt.Println("123312312344 是否匹配:", reg.MatchString("123312312344"))
  48. fmt.Println("13345678a12 是否匹配:", reg.MatchString("13345678a12"))
  49. fmt.Println("a13345678a1 是否匹配:", reg.MatchString("a13345678a1"))
  50. fmt.Println("1334a678a12 是否匹配:", reg.MatchString("1334a678a12"))
  51. fmt.Println("1345678a12a 是否匹配:", reg.MatchString("1345678a12a"))
  52. fmt.Println("aqwertyuioo 是否匹配:", reg.MatchString("aqwertyuioo"))
  53. }
  54. func TelPhoneRegexpTest() {
  55. reg := TelPhoneRegexp()
  56. fmt.Println("020-39006917 是否匹配:", reg.MatchString("020-39006917"))
  57. fmt.Println("02039006917 是否匹配:", reg.MatchString("02039006917"))
  58. fmt.Println("0754-5916612 是否匹配:", reg.MatchString("0754-5916612"))
  59. fmt.Println("07545916612 是否匹配:", reg.MatchString("07545916612"))
  60. fmt.Println("123-39006917 是否匹配:", reg.MatchString("123-39006917"))
  61. fmt.Println("1754-5916612 是否匹配:", reg.MatchString("1754-5916612"))
  62. fmt.Println("0a0-39006917 是否匹配:", reg.MatchString("0a0-39006917"))
  63. fmt.Println("0a039006917 是否匹配:", reg.MatchString("0a039006917"))
  64. fmt.Println("010-39s06917 是否匹配:", reg.MatchString("010-39s06917"))
  65. fmt.Println("020-390069171 是否匹配:", reg.MatchString("020-390069171"))
  66. fmt.Println("020-3900691 是否匹配:", reg.MatchString("020-3900691"))
  67. }