保誠-保戶業務員媒合平台
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
'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;