12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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;
- };
|