validate.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. /**
  2. * @description 判读是否为外链
  3. * @param path
  4. * @returns {boolean}
  5. */
  6. export function isExternal(path) {
  7. return /^(https?:|mailto:|tel:|\/\/)/.test(path)
  8. }
  9. /**
  10. * @description 校验密码是否小于6位
  11. * @param value
  12. * @returns {boolean}
  13. */
  14. export function isPassword(value) {
  15. return value.length >= 6
  16. }
  17. /**
  18. * @description 判断是否为数字
  19. * @param value
  20. * @returns {boolean}
  21. */
  22. export function isNumber(value) {
  23. const reg = /^[0-9]*$/
  24. return reg.test(value)
  25. }
  26. /**
  27. * @description 判断是否是名称
  28. * @param value
  29. * @returns {boolean}
  30. */
  31. export function isName(value) {
  32. const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
  33. return reg.test(value)
  34. }
  35. /**
  36. * @description 判断是否为IP
  37. * @param ip
  38. * @returns {boolean}
  39. */
  40. export function isIP(ip) {
  41. const reg =
  42. /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
  43. return reg.test(ip)
  44. }
  45. /**
  46. * @description 判断是否是传统网站
  47. * @param url
  48. * @returns {boolean}
  49. */
  50. export function isUrl(url) {
  51. const reg =
  52. /^(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.,?'\\+&%$#=~_-]+))*$/
  53. return reg.test(url)
  54. }
  55. /**
  56. * @description 判断是否是小写字母
  57. * @param value
  58. * @returns {boolean}
  59. */
  60. export function isLowerCase(value) {
  61. const reg = /^[a-z]+$/
  62. return reg.test(value)
  63. }
  64. /**
  65. * @description 判断是否是大写字母
  66. * @param value
  67. * @returns {boolean}
  68. */
  69. export function isUpperCase(value) {
  70. const reg = /^[A-Z]+$/
  71. return reg.test(value)
  72. }
  73. /**
  74. * @description 判断是否是大写字母开头
  75. * @param value
  76. * @returns {boolean}
  77. */
  78. export function isAlphabets(value) {
  79. const reg = /^[A-Za-z]+$/
  80. return reg.test(value)
  81. }
  82. /**
  83. * @description 判断是否是字符串
  84. * @param value
  85. * @returns {boolean}
  86. */
  87. export function isString(value) {
  88. return typeof value === 'string' || value instanceof String
  89. }
  90. /**
  91. * @description 判断是否是数组
  92. * @param arg
  93. */
  94. export function isArray(arg) {
  95. if (typeof Array.isArray === 'undefined') {
  96. return Object.prototype.toString.call(arg) === '[object Array]'
  97. }
  98. return Array.isArray(arg)
  99. }
  100. /**
  101. * @description 判断是否是端口号
  102. * @param value
  103. * @returns {boolean}
  104. */
  105. export function isPort(value) {
  106. const reg = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/
  107. return reg.test(value)
  108. }
  109. /**
  110. * @description 判断是否是手机号
  111. * @param value
  112. * @returns {boolean}
  113. */
  114. export function isPhone(value) {
  115. const reg = /^1\d{10}$/
  116. return reg.test(value)
  117. }
  118. /**
  119. * @description 判断是否是身份证号(第二代)
  120. * @param value
  121. * @returns {boolean}
  122. */
  123. export function isIdCard(value) {
  124. const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  125. return reg.test(value)
  126. }
  127. /**
  128. * @description 判断是否是邮箱
  129. * @param value
  130. * @returns {boolean}
  131. */
  132. export function isEmail(value) {
  133. const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  134. return reg.test(value)
  135. }
  136. /**
  137. * @description 判断是否中文
  138. * @param value
  139. * @returns {boolean}
  140. */
  141. export function isChina(value) {
  142. const reg = /^[\u4E00-\u9FA5]{2,4}$/
  143. return reg.test(value)
  144. }
  145. /**
  146. * @description 判断是否为空
  147. * @param value
  148. * @returns {boolean}
  149. */
  150. export function isBlank(value) {
  151. return value === null || false || value === '' || value.trim() === '' || value.toLocaleLowerCase().trim() === 'null'
  152. }
  153. /**
  154. * @description 判断是否为固话
  155. * @param value
  156. * @returns {boolean}
  157. */
  158. export function isTel(value) {
  159. const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})([- ])?)?([0-9]{7,8})(([- 转])*([0-9]{1,4}))?$/
  160. return reg.test(value)
  161. }
  162. /**
  163. * @description 判断是否为数字且最多两位小数
  164. * @param value
  165. * @returns {boolean}
  166. */
  167. export function isNum(value) {
  168. const reg = /^\d+(\.\d{1,2})?$/
  169. return reg.test(value)
  170. }
  171. /**
  172. * @description 判断是否为json
  173. * @param value
  174. * @returns {boolean}
  175. */
  176. export function isJson(value) {
  177. if (typeof value === 'string') {
  178. const obj = JSON.parse(value)
  179. return !!(typeof obj === 'object' && obj)
  180. }
  181. return false
  182. }