码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】Valid Number

时间:2018-03-30 21:36:17      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:.com   正则   new   bubuko   细胞   regexp   post   就是   pos   

题目如下:

技术分享图片

解题思路:对于这种题目,还是用正则表达式吧。顺便吐槽下,这个题目坑实在是太多太多了,各种数字的表达类型都要考虑到,反正就是慢慢尝试呗。如果是像我一样对正则表达式不是特别熟练的话,还是建议把各种情况分开,不要写在一个表达式里,不然要死很多脑细胞的。

代码如下:

var isNumber = function(s) {
    s = s.replace(/(^\s*)|(\s*$)/g, "")
    //0
    if(s == ‘0‘){
        return true
    }
    if(s.replace(/\./g,"") == ""){
        return false
    }
    //不包括任何一个数字
    var re = /\d/
    if( !re.test(s) ){
        return false
    }
    //正负整数
    //var re = new RegExp(rs);
    re = /^[\+-]?[0-9]\d{0,}$/
    if( re.test(s) ){
        return true
    }

    //正负小数
    re = /^[\+-]?[0-9]?\d{0,}\.\d{0,}$|^[\+-]?0\.\d{0,}$/
    if( re.test(s) ){
        return true
    }
    // .1
    re = /^-?\.\d{1,}$/
    if( re.test(s) ){
        return true
    }

    //科学计数法
    //.e1 -> false; .2e1->true; 1.431352e7 ->true
    re = /^[\+-]?[0-9]+e[-\+]?\d{1,}$|^[\+-]?[0-9]+\.{1}e[-\+]?\d{1,}$|^[\+-]?\d*\.{1}\d+e[-\+]?\d{1,}$/
    if( re.test(s) ){
        return true
    }
    return false
};

 

【leetcode】Valid Number

标签:.com   正则   new   bubuko   细胞   regexp   post   就是   pos   

原文地址:https://www.cnblogs.com/seyjs/p/8678020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!