leetcodeValid Number

Posted seyjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcodeValid Number相关的知识,希望对你有一定的参考价值。

题目如下:

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

代码如下:

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
};

 

以上是关于leetcodeValid Number的主要内容,如果未能解决你的问题,请参考以下文章

LeetcodeValid Parentheses

LeetcodeValid Palindrome

leetcodevalid-palindrome

LeetcodeValid Anagram

leetcodeValid Sudoku

LeetCodeValid Parentheses合法括号