validate.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. export function validPassword (str) {
  2. // const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8}$/;
  3. // 必须同时包含数字,大小写字母
  4. /**
  5. *(?=.{12})表示要大等于12位。
  6. *(?=.*?[a-z])表示要有小写字母。
  7. *(?=.*?[A-Z])表示要有大写字母。
  8. */
  9. const reg = /^(?=.{8})(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d).*$/;
  10. return reg.test(str);
  11. }
  12. // ------------------------------------------------------------------------
  13. /**
  14. * @param {string} path
  15. * @returns {Boolean}
  16. */
  17. export function isExternal (path) {
  18. return /^(https?:|mailto:|tel:)/.test(path);
  19. }
  20. /**
  21. * @param {string} str
  22. * @returns {Boolean}
  23. */
  24. export function validUsername (str) {
  25. const valid_map = ["admin", "editor"];
  26. return valid_map.indexOf(str.trim()) >= 0;
  27. }
  28. /**
  29. * @param {string} url
  30. * @returns {Boolean}
  31. */
  32. export function validURL (url) {
  33. const reg =
  34. /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
  35. return reg.test(url);
  36. }
  37. /**
  38. * @param {string} str
  39. * @returns {Boolean}
  40. */
  41. export function validLowerCase (str) {
  42. const reg = /^[a-z]+$/;
  43. return reg.test(str);
  44. }
  45. /**
  46. * @param {string} str
  47. * @returns {Boolean}
  48. */
  49. export function validUpperCase (str) {
  50. const reg = /^[A-Z]+$/;
  51. return reg.test(str);
  52. }
  53. /**
  54. * @param {string} str
  55. * @returns {Boolean}
  56. */
  57. export function validAlphabets (str) {
  58. const reg = /^[A-Za-z]+$/;
  59. return reg.test(str);
  60. }
  61. /**
  62. * @param {string} email
  63. * @returns {Boolean}
  64. */
  65. export function validEmail (email) {
  66. const reg =
  67. /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  68. return reg.test(email);
  69. }
  70. /**
  71. * @param {string} str
  72. * @returns {Boolean}
  73. */
  74. export function isString (str) {
  75. if (typeof str === "string" || str instanceof String) {
  76. return true;
  77. }
  78. return false;
  79. }
  80. /**
  81. * @param {Array} arg
  82. * @returns {Boolean}
  83. */
  84. export function isArray (arg) {
  85. if (typeof Array.isArray === "undefined") {
  86. return Object.prototype.toString.call(arg) === "[object Array]";
  87. }
  88. return Array.isArray(arg);
  89. }
  90. // 填写内容必须是纯数字 / 正整数
  91. export function validPositiveInteger (str) {
  92. const reg = /(^[1-9]\d*$)/;
  93. return reg.test(str);
  94. }
  95. // 大于等于0,保留两位小数
  96. export function validTwoMinNum (str) {
  97. const reg = /^([0-9]{1}|^[1-9]{1}\d{1,15})(\.\d{1,2})?$/;
  98. return reg.test(str);
  99. }
  100. // 填写内容必须是纯数字 / 整数
  101. export function validPositiveIntegerZero (str) {
  102. const reg = /(^[0-9]\d*$)/;
  103. return reg.test(str);
  104. }
  105. export const validateNum = (rule, value, callback) => {
  106. // console.log('value = ' , value , '---', 1 + value , rule)
  107. if (value === "" || value === undefined) {
  108. if (rule.required) {
  109. callback(new Error(rule.msg));
  110. } else {
  111. callback();
  112. }
  113. } else {
  114. if (rule.valids.regular(value)) {
  115. callback();
  116. } else {
  117. callback(new Error(rule.valids.msg));
  118. }
  119. }
  120. };