题目

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”、”5e2”、”-123”、”3.1416”、”0123”都表示数值,但”12e”、”1a3.14”、”1.2.3”、”+-5”、”-1E-16”及”12e+5.4”都不是

解析

Method 1 - 正则

  1. var isNumber = function(s) {
  2. return /^[+-]?(\d+(\.\d*)?|(\.\d+))(e[+-]?\d+)?$/.test(s.trim());
  3. };

Method 2 - 数值判断函数

  1. var isNumber = function(s) {
  2. s=s.trim()
  3. if(!s) return false
  4. return !isNaN(s)
  5. };