utils.ts 998 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // @ts-nocheck
  2. export function isDef(value: unknown): boolean {
  3. return value !== undefined && value !== null;
  4. }
  5. export function isNumber(value: string) {
  6. return /^\d+(\.\d+)?$/.test(value);
  7. }
  8. /**
  9. * 换成 px number
  10. */
  11. export function toPx(value: string | number) {
  12. // 如果是数字
  13. if (typeof value === 'number') {
  14. return value
  15. }
  16. // 如果是字符串数字
  17. if (isNumber(value)) {
  18. return Number(value)
  19. }
  20. // 如果有单位
  21. if (typeof value === 'string') {
  22. const reg = /^-?([0-9]+)?([.]{1}[0-9]+){0,1}(em|rpx|px|%)$/g
  23. const results = reg.exec(value);
  24. if (!value || !results) {
  25. return 0;
  26. }
  27. const unit = results[3];
  28. value = parseFloat(value);
  29. if (unit === 'rpx') {
  30. return uni.upx2px(value);
  31. }
  32. if (unit === 'px') {
  33. return value * 1;
  34. }
  35. }
  36. return 0
  37. }
  38. export function addUnit(value?: string | number): string | undefined {
  39. if (!isDef(value)) {
  40. return undefined;
  41. }
  42. value = String(value);
  43. return isNumber(value) ? `${value}px` : value;
  44. }