2012-04-26 175 views
3

我想使用此代碼刪除一個字符串的前13個字符:字符串操作

requestToken = requestToken.substring(13); 

但是,我得到「has no method substring」誤差的NodeJS,上面的代碼大多數在Javascript論壇中推薦的方法不適用於NodeJS?

+0

沒有答案,但子的類型(0,13 )不會刪除前13個字符。 – 2012-04-26 17:26:27

回答

7

看起來好像requestToken可能不是字符串。

嘗試

requestToken = '' + requestToken; 

然後requestToken.substring(13);

+0

我相信這是無效的語法。 – 2012-04-26 17:29:36

+0

http://www.w3schools.com/jsref/jsref_substring.asp – ControlAltDel 2012-04-26 17:31:48

+0

指的是'requestToken =「+ requestToken;'。認爲你錯過了'''? – 2012-04-26 17:33:42

1

requestToken不能是一個字符串然後。這可能是某種對象,並且您想要的字符串可能由該對象的方法或屬性返回。試試console.log(requestToken),看看真的是什麼。

您還希望.slice()刪除字符串的前面。

,將可能對最終的東西,如:

myString = requestToken.someProperty.slice(13); 
4

substring(和substr)是絕對的字符串原型節點的功能;這聽起來像你不是用字符串

$ node 
> "asdf".substring(0,2) 
'as' 
2

轉換requestToken處理爲一個字符串第一:

requestToken = (requestToken+"").slice(13); 
0

它強制轉換爲字符串可能不會解決你的問題。 console.log(typeof(requestToken))可能會給你一些線索。

0

嘗試檢查的對象/變量:

console.log(JSON.stringify(yourObject)); 

,或者通過

console.log(typeof yourVariable); 
0
requestToken.toString().slice(13); 

if(typeof requestToken!="string") 
{ 
    requestToken.toString().slice(13); 
}else 
{ 
    requestToken.slice(13); 
}