validate.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. /**
  2. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  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 (不想保留author可删除)
  12. * @description 校验密码是否小于6位
  13. * @param str
  14. * @returns {boolean}
  15. */
  16. export function isPassword(str) {
  17. return str.length >= 6;
  18. }
  19. /**
  20. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  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 (不想保留author可删除)
  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 (不想保留author可删除)
  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 (不想保留author可删除)
  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 (不想保留author可删除)
  61. * @description 判断是否是小写字母
  62. * @param str
  63. * @returns {boolean}
  64. */
  65. export function isLowerCase(str) {
  66. const reg = /^[a-z]+$/;
  67. return reg.test(str);
  68. }
  69. /**
  70. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  71. * @description 判断是否是大写字母
  72. * @param str
  73. * @returns {boolean}
  74. */
  75. export function isUpperCase(str) {
  76. const reg = /^[A-Z]+$/;
  77. return reg.test(str);
  78. }
  79. /**
  80. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  81. * @description 判断是否是大写字母开头
  82. * @param str
  83. * @returns {boolean}
  84. */
  85. export function isAlphabets(str) {
  86. const reg = /^[A-Za-z]+$/;
  87. return reg.test(str);
  88. }
  89. /**
  90. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  91. * @description 判断是否是字符串
  92. * @param str
  93. * @returns {boolean}
  94. */
  95. export function isString(str) {
  96. return typeof str === "string" || str instanceof String;
  97. }
  98. /**
  99. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  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 (不想保留author可删除)
  112. * @description 判断是否是端口号
  113. * @param str
  114. * @returns {boolean}
  115. */
  116. export function isPort(str) {
  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(str);
  119. }
  120. /**
  121. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  122. * @description 判断是否是手机号
  123. * @param str
  124. * @returns {boolean}
  125. */
  126. export function isPhone(str) {
  127. const reg = /^1\d{10}$/;
  128. return reg.test(str);
  129. }
  130. /**
  131. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  132. * @description 判断是否是身份证号(第二代)
  133. * @param str
  134. * @returns {boolean}
  135. */
  136. export function isIdCard(str) {
  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(str);
  139. }
  140. /**
  141. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  142. * @description 判断是否是邮箱
  143. * @param str
  144. * @returns {boolean}
  145. */
  146. export function isEmail(str) {
  147. const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  148. return reg.test(str);
  149. }
  150. /**
  151. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  152. * @description 判断是否中文
  153. * @param str
  154. * @returns {boolean}
  155. */
  156. export function isChina(str) {
  157. const reg = /^[\u4E00-\u9FA5]{2,4}$/;
  158. return reg.test(str);
  159. }
  160. /**
  161. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  162. * @description 判断是否为空
  163. * @param str
  164. * @returns {boolean}
  165. */
  166. export function isBlank(str) {
  167. return (
  168. str == null ||
  169. false ||
  170. str === "" ||
  171. str.trim() === "" ||
  172. str.toLocaleLowerCase().trim() === "null"
  173. );
  174. }
  175. /**
  176. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  177. * @description 判断是否为固话
  178. * @param str
  179. * @returns {boolean}
  180. */
  181. export function isTel(str) {
  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(str);
  184. }
  185. /**
  186. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  187. * @description 判断是否为数字且最多两位小数
  188. * @param str
  189. * @returns {boolean}
  190. */
  191. export function isNum(str) {
  192. const reg = /^\d+(\.\d{1,2})?$/;
  193. return reg.test(str);
  194. }
  195. /**
  196. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  197. * @description 判断经度 -180.0~+180.0(整数部分为0~180,必须输入1到5位小数)
  198. * @param str
  199. * @returns {boolean}
  200. */
  201. export function isLongitude(str) {
  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(str);
  204. }
  205. /**
  206. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  207. * @description 判断纬度 -90.0~+90.0(整数部分为0~90,必须输入1到5位小数)
  208. * @param str
  209. * @returns {boolean}
  210. */
  211. export function isLatitude(str) {
  212. const reg = /^[-|+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/;
  213. return reg.test(str);
  214. }
  215. /**
  216. * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
  217. * @description rtsp校验,只要有rtsp://
  218. * @param str
  219. * @returns {boolean}
  220. */
  221. export function isRTSP(str) {
  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(str) || reg1.test(str) || reg2.test(str);
  226. }