typeTool.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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(v){
  7. // 情况1 非对象,直接调用内部值
  8. if(isNumber(v)) {
  9. return v + ''
  10. }
  11. return v + '';
  12. }
  13. // 转换为number类型,先用toBoolean转换为布尔类型
  14. function toNumber(v){
  15. if(isString(v)){
  16. if(falseField.includes(v)){
  17. v = toBoolean(v)
  18. }else if (trueField.includes(v)){
  19. v = toBoolean(v)
  20. }
  21. }
  22. return Number(v)
  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. function isEmpty(v){
  50. if(isArray(v)){
  51. return v.length === 0
  52. }else if(isObject(v)){
  53. return Object.keys(v).length === 0
  54. }else if(v === 0){
  55. return false;
  56. }else{
  57. return !v
  58. }
  59. }
  60. module.exports = {
  61. toNumber,
  62. toString,
  63. toBoolean,
  64. isEmpty
  65. }