| var minus = "-".charCodeAt(0); | 
| var plus = "+".charCodeAt(0); | 
| var dot = ".".charCodeAt(0); | 
| var exp = "e".charCodeAt(0); | 
| var EXP = "E".charCodeAt(0); | 
|   | 
| module.exports = function(value) { | 
|   var pos = 0; | 
|   var length = value.length; | 
|   var dotted = false; | 
|   var sciPos = -1; | 
|   var containsNumber = false; | 
|   var code; | 
|   | 
|   while (pos < length) { | 
|     code = value.charCodeAt(pos); | 
|   | 
|     if (code >= 48 && code <= 57) { | 
|       containsNumber = true; | 
|     } else if (code === exp || code === EXP) { | 
|       if (sciPos > -1) { | 
|         break; | 
|       } | 
|       sciPos = pos; | 
|     } else if (code === dot) { | 
|       if (dotted) { | 
|         break; | 
|       } | 
|       dotted = true; | 
|     } else if (code === plus || code === minus) { | 
|       if (pos !== 0) { | 
|         break; | 
|       } | 
|     } else { | 
|       break; | 
|     } | 
|   | 
|     pos += 1; | 
|   } | 
|   | 
|   if (sciPos + 1 === pos) pos--; | 
|   | 
|   return containsNumber | 
|     ? { | 
|         number: value.slice(0, pos), | 
|         unit: value.slice(pos) | 
|       } | 
|     : false; | 
| }; |