typeTool_cjs.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. let matchNumberStr = ['0',]
  2. // 部分关键字转换为boolean值
  3. let falseField = ['false','False','FALSE','null','Null','NULL','undefined','Undefined'];
  4. let trueField = ['true','True','TRUE'];
  5. // 类型转换
  6. function toString(){
  7. // 情况1 非对象,直接调用内部值
  8. }
  9. // 转换为number类型,先用toBoolean转换为布尔类型
  10. function toNumber(v){
  11. if(isString(v)){
  12. if(falseField.includes(v)){
  13. v = toBoolean(v)
  14. }else if (trueField.includes(v)){
  15. v = toBoolean(v)
  16. }
  17. }
  18. if(!v){
  19. return 0;
  20. }
  21. let r = Number(v);
  22. return isNaN(r)?0:r;
  23. }
  24. // 考虑字段类型
  25. function toBoolean(v){
  26. // 字符串类型
  27. if (isString(v)){
  28. if(falseField.includes(v)){
  29. return false
  30. }else if (trueField.includes(v)){
  31. return true
  32. }else{
  33. Boolean(v)
  34. }
  35. }
  36. }
  37. function isArray(v){
  38. return v instanceof Array
  39. }
  40. function isString(v){
  41. return v instanceof String || typeof v === 'string'
  42. }
  43. function isNumber(v){
  44. return v instanceof Number
  45. }
  46. function isObject(v){
  47. return v instanceof Object
  48. }
  49. // 判断 obj 或者 arr 是否为空 , 允许为0, 不允许空字符串
  50. function isEmpty(v){
  51. if(isArray(v)){
  52. return v.length === 0
  53. }else if(isObject(v)){
  54. return Object.keys(v).length === 0
  55. }else if(v === 0){
  56. return false;
  57. }else{
  58. return !v
  59. }
  60. }
  61. // 判断数据是否存在,不允许为空字符串,空对象与空数组, 允许为 0
  62. module.exports = {
  63. toNumber,
  64. toString,
  65. toBoolean,
  66. isEmpty
  67. }