validate.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /**
  2. * @author chuzhixin 1204505056@qq.com
  3. * @description 判读是否为外链
  4. * @param path
  5. * @returns {boolean}
  6. */
  7. export function isExternal(path) {
  8. return /^(https?:|mailto:|tel:)/.test(path)
  9. }
  10. /**
  11. * @author chuzhixin 1204505056@qq.com
  12. * @description 校验密码是否小于6位
  13. * @param value
  14. * @returns {boolean}
  15. */
  16. export function isPassword(value) {
  17. return value.length >= 6
  18. }
  19. /**
  20. * @author chuzhixin 1204505056@qq.com
  21. * @description 判断是否为数字
  22. * @param value
  23. * @returns {boolean}
  24. */
  25. export function isNumber(value) {
  26. const reg = /^[0-9]*$/
  27. return reg.test(value)
  28. }
  29. /**
  30. * @author chuzhixin 1204505056@qq.com
  31. * @description 判断是否是名称
  32. * @param value
  33. * @returns {boolean}
  34. */
  35. export function isName(value) {
  36. const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
  37. return reg.test(value)
  38. }
  39. /**
  40. * @author chuzhixin 1204505056@qq.com
  41. * @description 判断是否为IP
  42. * @param ip
  43. * @returns {boolean}
  44. */
  45. export function isIP(ip) {
  46. const reg = /^(\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])$/
  47. return reg.test(ip)
  48. }
  49. /**
  50. * @author chuzhixin 1204505056@qq.com
  51. * @description 判断是否是传统网站
  52. * @param url
  53. * @returns {boolean}
  54. */
  55. export function isUrl(url) {
  56. const reg = /^(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.,?'\\+&%$#=~_-]+))*$/
  57. return reg.test(url)
  58. }
  59. /**
  60. * @author chuzhixin 1204505056@qq.com
  61. * @description 判断是否是小写字母
  62. * @param value
  63. * @returns {boolean}
  64. */
  65. export function isLowerCase(value) {
  66. const reg = /^[a-z]+$/
  67. return reg.test(value)
  68. }
  69. /**
  70. * @author chuzhixin 1204505056@qq.com
  71. * @description 判断是否是大写字母
  72. * @param value
  73. * @returns {boolean}
  74. */
  75. export function isUpperCase(value) {
  76. const reg = /^[A-Z]+$/
  77. return reg.test(value)
  78. }
  79. /**
  80. * @author chuzhixin 1204505056@qq.com
  81. * @description 判断是否是大写字母开头
  82. * @param value
  83. * @returns {boolean}
  84. */
  85. export function isAlphabets(value) {
  86. const reg = /^[A-Za-z]+$/
  87. return reg.test(value)
  88. }
  89. /**
  90. * @author chuzhixin 1204505056@qq.com
  91. * @description 判断是否是字符串
  92. * @param value
  93. * @returns {boolean}
  94. */
  95. export function isString(value) {
  96. return typeof value === 'string' || value instanceof String
  97. }
  98. /**
  99. * @author chuzhixin 1204505056@qq.com
  100. * @description 判断是否是数组
  101. * @param arg
  102. * @returns {arg is any[]|boolean}
  103. */
  104. export function isArray(arg) {
  105. if (typeof Array.isArray === 'undefined') {
  106. return Object.prototype.toString.call(arg) === '[object Array]'
  107. }
  108. return Array.isArray(arg)
  109. }
  110. /**
  111. * @author chuzhixin 1204505056@qq.com
  112. * @description 判断是否是端口号
  113. * @param value
  114. * @returns {boolean}
  115. */
  116. export function isPort(value) {
  117. 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])$/
  118. return reg.test(value)
  119. }
  120. /**
  121. * @author chuzhixin 1204505056@qq.com
  122. * @description 判断是否是手机号
  123. * @param value
  124. * @returns {boolean}
  125. */
  126. export function isPhone(value) {
  127. const reg = /^1\d{10}$/
  128. return reg.test(value)
  129. }
  130. /**
  131. * @author chuzhixin 1204505056@qq.com
  132. * @description 判断是否是身份证号(第二代)
  133. * @param value
  134. * @returns {boolean}
  135. */
  136. export function isIdCard(value) {
  137. 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]$/
  138. return reg.test(value)
  139. }
  140. /**
  141. * @author chuzhixin 1204505056@qq.com
  142. * @description 判断是否是邮箱
  143. * @param value
  144. * @returns {boolean}
  145. */
  146. export function isEmail(value) {
  147. const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  148. return reg.test(value)
  149. }
  150. /**
  151. * @author chuzhixin 1204505056@qq.com
  152. * @description 判断是否中文
  153. * @param value
  154. * @returns {boolean}
  155. */
  156. export function isChina(value) {
  157. const reg = /^[\u4E00-\u9FA5]{2,4}$/
  158. return reg.test(value)
  159. }
  160. /**
  161. * @author chuzhixin 1204505056@qq.com
  162. * @description 判断是否为空
  163. * @param value
  164. * @returns {boolean}
  165. */
  166. export function isBlank(value) {
  167. return (
  168. value == null ||
  169. false ||
  170. value === '' ||
  171. value.trim() === '' ||
  172. value.toLocaleLowerCase().trim() === 'null'
  173. )
  174. }
  175. /**
  176. * @author chuzhixin 1204505056@qq.com
  177. * @description 判断是否为固话
  178. * @param value
  179. * @returns {boolean}
  180. */
  181. export function isTel(value) {
  182. const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})([- ])?)?([0-9]{7,8})(([- 转])*([0-9]{1,4}))?$/
  183. return reg.test(value)
  184. }
  185. /**
  186. * @author chuzhixin 1204505056@qq.com
  187. * @description 判断是否为数字且最多两位小数
  188. * @param value
  189. * @returns {boolean}
  190. */
  191. export function isNum(value) {
  192. const reg = /^\d+(\.\d{1,2})?$/
  193. return reg.test(value)
  194. }
  195. /**
  196. * @author chuzhixin 1204505056@qq.com
  197. * @description 判断经度 -180.0~+180.0(整数部分为0~180,必须输入1到5位小数)
  198. * @param value
  199. * @returns {boolean}
  200. */
  201. export function isLongitude(value) {
  202. const reg = /^[-|+]?(0?\d{1,2}\.\d{1,5}|1[0-7]?\d{1}\.\d{1,5}|180\.0{1,5})$/
  203. return reg.test(value)
  204. }
  205. /**
  206. * @author chuzhixin 1204505056@qq.com
  207. * @description 判断纬度 -90.0~+90.0(整数部分为0~90,必须输入1到5位小数)
  208. * @param value
  209. * @returns {boolean}
  210. */
  211. export function isLatitude(value) {
  212. const reg = /^[-|+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/
  213. return reg.test(value)
  214. }
  215. /**
  216. * @author chuzhixin 1204505056@qq.com
  217. * @description rtsp校验,只要有rtsp://
  218. * @param value
  219. * @returns {boolean}
  220. */
  221. export function isRTSP(value) {
  222. const reg = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\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])$/
  223. const reg1 = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\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]):[0-9]{1,5}/
  224. const reg2 = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\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])\//
  225. return reg.test(value) || reg1.test(value) || reg2.test(value)
  226. }
  227. /**
  228. * @author chuzhixin 1204505056@qq.com
  229. * @description 判断是否为json
  230. * @param value
  231. * @returns {boolean}
  232. */
  233. export function isJson(value) {
  234. if (typeof value == 'string') {
  235. try {
  236. var obj = JSON.parse(value)
  237. if (typeof obj == 'object' && obj) {
  238. return true
  239. } else {
  240. return false
  241. }
  242. } catch (e) {
  243. return false
  244. }
  245. }
  246. }