题目描述:

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

知识点:

  • 主要是正则表达式的掌握
  • [A-Za-z0-9]表示字符集,任意范围字符多选一
  • {6,10}表示某模式重复的次数
  • ()代表优先级
  • *代表 0次或多次,+代表一次以上,?代表0次或一次
  • g代表全局匹配,i忽略大小写,gi全局匹配,忽略大小写

解题思路:

  • 直接使用正则匹配便好

题目代码:

  1. //s字符串
  2. function isNumeric(s)
  3. {
  4. // write code here
  5. // 注意这里有几个细节一定要注意
  6. // 1.一定要设置^与$开头与结尾
  7. // 2.要记得加i代表忽略大小写
  8. return /^[+-]?\d*\.?\d+(e[+-]?\d+)?$/i.test(s);
  9. }