首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >测试substring是否为数字,以及它是否大于Javascript中的另一个数字

测试substring是否为数字,以及它是否大于Javascript中的另一个数字
EN

Stack Overflow用户
提问于 2018-06-29 03:05:00
回答 4查看 53关注 0票数 0

我有一个以字符串作为pubDate的json文件。pubDate可以是2010年3月、2010年3月、2010/1/1、空白或不可用。我所拥有的是

代码语言:javascript
复制
var res = pubDate.substr(0, 4);
var i = parseInt(res, 10);
if (!isNaN(i)) {                    
    if (i > 2010) {
        //do work
    }
}

这是可行的,但我希望有一些更干净的代码,这样我就可以在一两行代码中做到这一点。这有可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-29 03:21:52

1)如果iNaN,则i > 2010为false,不需要进行isNaN校验。

2) ParseInt会忽略后缀字符,因此您不必使用substr:

代码语言:javascript
复制
const year = parseInt(pubDate);
if(year > 2010) {
  //...
 }
票数 2
EN

Stack Overflow用户

发布于 2018-06-29 03:10:24

这是一个相当混乱的情况,听起来像是,除非折叠其中的一些行,否则我认为你没有太多的选择。通过折叠一些行,我的意思是字面上的:

代码语言:javascript
复制
var i = parseInt((pubDate.substr(0, 4), 10);
if (!isNan(i) && i > 2010) {
    // do work
}

但这是假设你以后不需要"res“来做一些事情,看起来你不应该这样做。

票数 0
EN

Stack Overflow用户

发布于 2018-06-29 03:23:31

可能只有两行代码。也许不是更干净的代码。

代码语言:javascript
复制
var i = (!isNaN(parseInt(pubDate.substr(0, 4))))?parseInt(pubDate.substr(0, 4)):0;
if( i > 2010 ){
    //do work
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51089755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档