tools.js 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. export function getFileExtension(filename) {
  2. var tempArr = filename.split('.')
  3. var ext
  4. if (tempArr.length === 1 || (tempArr[0] === '' && tempArr.length === 2)) {
  5. ext = ''
  6. } else {
  7. ext = tempArr.pop().toLowerCase() // get the extension and make it lower-case
  8. }
  9. return ext
  10. }
  11. export function isCardNo(card) {
  12. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  13. var reg_18 = /^[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]$/
  14. var reg_15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$/
  15. return reg_18.test(card) || reg_15.test(card)
  16. }
  17. export function jsGetAge(strBirthday, splitstr) {
  18. var returnAge
  19. var strBirthdayArr = strBirthday.split(splitstr)
  20. var birthYear = strBirthdayArr[0]
  21. var birthMonth = strBirthdayArr[1]
  22. var birthDay = strBirthdayArr[2]
  23. var d = new Date()
  24. var nowYear = d.getFullYear()
  25. var nowMonth = d.getMonth() + 1
  26. var nowDay = d.getDate()
  27. if (nowYear == birthYear) {
  28. returnAge = 0// 同年 则为0岁
  29. } else {
  30. var ageDiff = nowYear - birthYear // 年之差
  31. if (ageDiff > 0) {
  32. if (nowMonth == birthMonth) {
  33. var dayDiff = nowDay - birthDay// 日之差
  34. if (dayDiff < 0) {
  35. returnAge = ageDiff - 1
  36. } else {
  37. returnAge = ageDiff
  38. }
  39. } else {
  40. var monthDiff = nowMonth - birthMonth// 月之差
  41. if (monthDiff < 0) {
  42. returnAge = ageDiff - 1
  43. } else {
  44. returnAge = ageDiff
  45. }
  46. }
  47. } else {
  48. returnAge = -1// 返回-1 表示出生日期输入错误 晚于今天
  49. }
  50. }
  51. return returnAge// 返回周岁年龄
  52. }
  53. export function isPositiveInteger(s) { // 是否为正整数
  54. var re = /^[0-9]+$/
  55. return re.test(s)
  56. }
  57. export function isPositiveNumber(s) {
  58. var re = /^\d+(\.\d+)?$/
  59. return re.test(s)
  60. }
  61. export function dialysisAge(firstDialysisDate) {
  62. var dialysisAge
  63. var startDate = firstDialysisDate.split('-')
  64. var startYear = startDate[0]
  65. var startMonth = startDate[1]
  66. var startDay = startDate[2]
  67. var d = new Date()
  68. var nowYear = d.getFullYear()
  69. var nowMonth = d.getMonth() + 1
  70. var nowDay = d.getDate()
  71. var diffYear = nowYear - startYear
  72. var diffMonth = nowMonth - startMonth
  73. var diffDay = nowDay - startDay
  74. if (diffYear < 0) {
  75. dialysisAge = ''
  76. } else if (diffYear == 0) {
  77. if (diffMonth < 0) {
  78. dialysisAge = ''
  79. } else if (diffMonth == 0 && diffDay < 0) {
  80. dialysisAge = ''
  81. } else {
  82. if (diffDay < 0) {
  83. diffMonth -= 1
  84. }
  85. dialysisAge = diffMonth + '个月'
  86. }
  87. } else {
  88. if (diffDay < 0) {
  89. diffMonth -= 1
  90. }
  91. if (diffMonth < 0) {
  92. diffYear -= 1
  93. diffMonth += 12
  94. }
  95. if (diffYear > 0 && diffMonth > 0) {
  96. dialysisAge = diffYear + '年零' + diffMonth + '个月'
  97. } else if (diffYear > 0) {
  98. dialysisAge = diffYear + '年'
  99. } else {
  100. dialysisAge = diffMonth + '个月'
  101. }
  102. }
  103. return dialysisAge// 返回周岁年龄
  104. }
  105. export function uParseTime(time, cFormat) {
  106. if (arguments.length === 0) {
  107. return null
  108. }
  109. const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  110. let date
  111. if (typeof time === 'object') {
  112. date = time
  113. } else {
  114. if (('' + time).length !== 13) time = parseInt(time) * 1000
  115. date = new Date(time)
  116. }
  117. const formatObj = {
  118. y: date.getFullYear(),
  119. m: date.getMonth() + 1,
  120. d: date.getDate(),
  121. h: date.getHours(),
  122. i: date.getMinutes(),
  123. s: date.getSeconds(),
  124. a: date.getDay()
  125. }
  126. const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
  127. let value = formatObj[key]
  128. if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
  129. if (result.length > 0 && value < 10) {
  130. value = '0' + value
  131. }
  132. return value || 0
  133. })
  134. return time_str
  135. }
  136. export function calculateAnticoagulantZL(type, shouji, shichang, weichi) {
  137. var t = 0.5
  138. if (type == 1) {
  139. t = 0.5
  140. } else if (type == 2) {
  141. t = 1
  142. } else {
  143. return 0
  144. }
  145. shouji = parseFloat(shouji)
  146. shichang = parseFloat(shichang)
  147. weichi = parseFloat(weichi)
  148. if (isNaN(shouji) || isNaN(shichang) || isNaN(weichi)) {
  149. return 0
  150. }
  151. return (shouji + (shichang - t) * weichi).toFixed(1)
  152. }
  153. export function checkMobile(mobile) {
  154. if (!(/^1[2-9][0-9]\d{8}$/.test(mobile))) {
  155. return false
  156. }
  157. return true
  158. }
  159. export function checkPassWord(password) {
  160. if (!(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password))) {
  161. return false
  162. }
  163. return true
  164. }
  165. export function checkPassWordTwo(password) {
  166. if (!(/^[0-9A-Za-z]{6,}$/.test(password))) {
  167. return false
  168. }
  169. return true
  170. }
  171. export function checkMobileOrPhone(tel) {
  172. // eslint-disable-next-line one-var
  173. var mobile = /^1[2-9][0-9]\d{8}$/, phone = /^0\d{2,3}-?\d{7,8}$/
  174. return mobile.test(tel) || phone.test(tel)
  175. }
  176. export function checkHexColor(color) {
  177. if (!(/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(color))) {
  178. return false
  179. }
  180. return true
  181. }
  182. export function checkNumber(number) {
  183. if (!(/^([1-9][0-9]{0,1}|99)$/.test(number))) {
  184. return false
  185. }
  186. return true
  187. }
  188. export function checkSort(sort) {
  189. if (!(/^(?:1|[1-9]?|9)$/.test(sort))) {
  190. return false
  191. }
  192. return true
  193. }
  194. export function checkLenth(length) {
  195. if (!(/^(?=[0-9-]{6,20})[0-9]*-?[0-9]*-?[0-9]*$/.test(length))) {
  196. return false
  197. }
  198. return true
  199. }