2012-02-27 70 views
1

我通過Chrome擴展返回餅乾 - 的cookies.name之一是use_hitbox - 所以很自然我想做的事:的JavaScript的indexOf()和下劃線

if (cookie.name.indexOf("use_hitbox") > 0) { 
    alert("FOUND HITBOX COOKIE"); 
} 

的問題是:
cookie.name.indexOf("use")回報true
cookie.name.indexOf("hitbox")回報true
cookie.name.indexOf("use_hitbox")回報false

任何想法?

聲明:
這是用於我的網站,沒有惡意......!

編輯:酷,這個工作 - 但潛在的問題是瀏覽器緩存我的擴展文件

+7

如果'cookies.name'爲'「use_hitbox」',那麼'indexOf'返回不大於'0'的'0'(第一個字符)。我認爲你想要......>> -1'。 – 2012-02-27 14:46:21

+3

@FelixKling,100%爲真,儘管'indexOf(「use」)'也會失敗。這裏的東西沒有味道。 – Joe 2012-02-27 14:48:37

+0

@JoeTuskan:你說得對... – 2012-02-27 14:49:34

回答

4

的indexOf()將返回0,如果比賽是在字符串的開頭。 -1表示不匹配,從而嘗試:

if (cookie.name.indexOf("use_hitbox") > -1) 
+0

很酷,這工作 - 但底層問題是Chrome緩存我的擴展文件 – 2012-02-27 14:55:51

1

而不是解析返回指數boolean(其爲指出,將意味着爲False的0解析的指數),比較result != -1,這是如果返回值未找到子字符串。