typeTool.js 1.2 KB

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