1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
| var isNumber = function(s) { s = s.trim(); return S0(s, 0); };
var S0 = function(s, index) { if (index === s.length) { return false; } var char = s[index]; if (char === '+' || char === '-') { return S1(s, index + 1); } else if (char >= '0' && char <= '9') { return S2(s, index + 1); } else if (char === '.') { return S6(s, index + 1); } return false; }
var S1 = function(s, index) { if (index === s.length) { return false; } var char = s[index]; if (char >= '0' && char <= '9') { return S2(s, index + 1); } else if (char === '.') { return S6(s, index + 1); } return false; }
var S2 = function(s, index) { while (index < s.length && s[index] >= '0' && s[index] <= '9') { index ++; } if (index === s.length) { return true; } var char = s[index]; if (char === '.') { return S3(s, index + 1); } else if (char === 'e' || char === 'E') { return S4(s, index + 1); } return false; }
var S3 = function(s, index) { while (index < s.length && s[index] >= '0' && s[index] <= '9') { index ++; } if (index === s.length) { return true; } var char = s[index]; if (char === 'e' || char === 'E') { return S4(s, index + 1); } return false; }
var S4 = function(s, index) { if (index === s.length) { return false; } var char = s[index]; if (char >= '0' && char <= '9') { return S5(s, index + 1); } else if (char === '+' || char === '-') { return S7(s, index + 1); } return false; }
var S5 = function(s, index) { while (index < s.length && s[index] >= '0' && s[index] <= '9') { index ++; } if (index === s.length) { return true; } return false; }
var S6 = function(s, index) { if (index === s.length) { return false; } var char = s[index]; if (char >= '0' && char <= '9') { return S3(s, index + 1); } return false; }
var S7 = function(s, index) { if (index === s.length) { return false; } var char = s[index]; if (char >= '0' && char <= '9') { return S5(s, index + 1); } return false; }
|