2012-06-15 48 views
0

我使用下面的代码:我可以在JavaScript中链接一个子字符串检查吗?

if (store.getItem('TopicID') != "00") 

TopidID永远是4个位数,我需要做的就是改变这种检查的最后两位数字是“00”。

我可以通过只添加“.substring(from,to)”来做到这一点吗?或者我需要把它放入一个变量,然后检查变量吗?

+0

'TopicID'总是4位数字或'store.getItem('TopicID')'返回字符串总是4位长度? –

回答

0

我能做到这一点作为上述的部分只需添加 “.substring(从,到)”

是的,你可以。不过,你的语法错了。

if (store.getItem('TopicID').substring(2) != "00") 
1

使用if (!/00$/.test(store.getItem('TopicID'))来检查最后2位数字不是'00'。这样store.getItem('TopicID')的值的长度并不重要,你总是检查值的最后两个字符,并且你不需要substring“链接”。

顺便说一句,我认为store.getItem('TopicID')在这里返回String

为了完整并响应Paul Phillips评论:在!/00$/.test([somestring]),/00$/Regular Expression,一个用于描述搜索模式的特殊文本字符串。在这种情况下,这意味着:对于从store.getItem('TopicID')得到的字符串,检查是否可以找到2个连续的零,其中$-表示'在字符串末尾检查该模式'。

在“链接”这个主题上更加完整:只要链接的对象包含一个方法,所有东西都可以链接在一起。这方面的一个完全荒谬的例子:

Number(/00$/.test('0231')) //convert a boolean to a Number 
.toFixed(2)    //a Number has the toFixed method 
.split('.')[1]   //toFixed returns a String, which has method split 
.substr(1)    //the second element is a string, so substr applies 
.concat(' world')   //still a string, so concat will do 
.split(' ')    //string, so split works 
.join(' hello ')   //from split an array emerged, so join applies 
; 
//=> result of this chain: '0 hello world' 
+1

如果你解释为什么这很有道理,这将是一个更好的答案。 –

+0

@Paul:添加了一个解释。 – KooiInc

+0

我的意思是使用正则表达式。有人不确定链接可能不知道这样的高级话题。 –

0

尝试使用substrsubstring开始

if (store.getItem('TopicID').substr(-2) !== "00"){...} 

if (store.getItem('TopicID').substring(-2) !== "00"){...} 
0

链接它会工作。所以会提取一个局部变量。所以不,你不需要。如果你认为它使代码更具可读性,那就去做吧。

0

你可以做到使用slice

if (store.getItem('TopicID').slice(2,4) != "00") { 
     // Do Your Stuff 
} 
0

如果是四位数字,你可以使用

if (store.getItem('TopicID') % 100) 
0
var yourString = (store.getItem('TopicID')) 
if(yourString.substring((yourString.length - 2), 2) == "00") 

上面的代码不关心你的字符串有多长。它得到最后两位数并与“00”相比较

相关问题