validate.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. export function isExternal (path) {
  2. return /^(https?:|mailto:|tel:)/.test(path)
  3. }
  4. export function validPhone (phone) {
  5. return /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(phone)
  6. }
  7. export function validEmail (email) {
  8. return /^([a-zA-Z0-9]+[_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(email)
  9. }
  10. export function validMAC (mac) {
  11. return /^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$/.test(mac)
  12. }
  13. export function validIPv4 (ip) {
  14. return /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/.test(ip)
  15. }
  16. export function validIPv4Address (address) {
  17. return /^[a-z]+:\/\/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))(:[1-9]\d{1,4})?$/.test(address)
  18. }
  19. export function validIPv6 (ip) {
  20. if (ip === '::') {
  21. return true
  22. }
  23. const arr = ip.split('::')
  24. switch (arr.length) {
  25. case 1:
  26. return /^([\da-zA-Z]{1,4}:){7}[\da-zA-Z]{1,4}$/.test(ip)
  27. case 2:
  28. return /^([\da-zA-Z]{1,4}:){0,6}[\da-zA-Z]{1,4}$/.test(
  29. arr[0] && arr[1] ? `${arr[0]}:arr[1]` : arr[0] || arr[1]
  30. )
  31. default:
  32. return false
  33. }
  34. }
  35. export function validLongitude (longitude) {
  36. return /^[-+]?(0(\.\d{1,8})?|([1-9](\d)?)(\.\d{1,8})?|1[0-7]\d{1}(\.\d{1,8})?|180(([.][0]{1,8})?))$/.test(longitude)
  37. }
  38. export function validLatitude (latitude) {
  39. return /^[-+]?((0|([1-8]\d?))(\.\d{1,10})?|90(\.0{1,10})?)$/.test(latitude)
  40. }