使用Javascript(NodeJS)进行字符串操作

5
我正在尝试使用以下代码删除字符串的前13个字符:
requestToken = requestToken.substring(13);

然而,我在使用NodeJS时遇到了“has no method substring”的错误,上面的代码在Javascript论坛中被广泛推荐,但在NodeJS中不起作用。

不是答案,但substring(0,13)不会删除前13个字符。 - user1150525
7个回答

8

看起来requestToken可能不是一个字符串。

尝试一下:

requestToken = '' + requestToken;

然后是requestToken.substring(13);


我认为这是无效的语法。 - Elliot Bonneville
是在指 requestToken = " + requestToken; 这一部分吗?你觉得是不是漏了一个 " - Elliot Bonneville
哦,我明白了。抱歉让你感到困惑,对我来说它显示为双引号。=] - Elliot Bonneville

5

substring(和substr)绝对是在Node的字符串原型上的函数;听起来你没有处理一个字符串。

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

2

首先将 requestToken 转换为字符串:

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

1

requestToken 不能是字符串。它很可能是某种对象,并且你想要的字符串很可能是该对象的方法或属性返回的。尝试使用 console.log(requestToken) 并查看其实际内容。

您还需要使用 .slice() 来删除字符串的前面部分。

最终,您可能会得到类似以下的代码:

myString = requestToken.someProperty.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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接