typeTool.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. module.exports = {
  50. toNumber,
  51. toString,
  52. toBoolean
  53. }