| 'use strict'; | |
| /** | |
| * `input` type prompt | |
| */ | |
| var Input = require('./input'); | |
| /** | |
| * Extention of the Input prompt specifically for use with number inputs. | |
| */ | |
| class NumberPrompt extends Input { | |
| filterInput(input) { | |
| if (input && typeof input === 'string') { | |
| input = input.trim(); | |
| // Match a number in the input | |
| let numberMatch = input.match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/); | |
| // If a number is found, return that input. | |
| if (numberMatch) { | |
| return Number(numberMatch[0]); | |
| } | |
| } | |
| // If the input was invalid return the default value. | |
| return this.opt.default == null ? NaN : this.opt.default; | |
| } | |
| } | |
| module.exports = NumberPrompt; |