【发布时间】:2015-06-16 11:54:04
【问题描述】:
我使用变量的子字符串来确定如何对字符串进行切片。 字符串本身有四个字符长,并附有一个数字。即“doop0”/“doop1”等。我试图使用字符串长度来确定是否切掉更多。就像字符串变成“doop10”一样,从“10”中切出并解析它。但我得到 NaN 回报,我不知道为什么! 我的代码如下所示:
var num;
var numberCount = -1;
var nameCount = 5;
socket.on('Balls', function(msg)
{
console.log("Minus: "+parseInt(msg.Name.Length) - nameCount);
if(msg.Name.length == nameCount)
{
num = parseInt(msg.Name.slice(numberCount));
}
if(msg.Name.Length > nameCount)
{
console.log("Minus: "+msg.Name.Length - nameCount);
numberCount- (msg.Name.Length - nameCount);
nameCount+ (msg.Name.Length - nameCount);
num = parseInt(msg.Name.slice(numberCount));
}
最初的 if 语句将查看 msg 并切掉相关信息。 第二个 if 语句将检查长度是否增加,即“doop9”是否已变为“doop10”或是否已进入 100 个
numberCount- (msg.Name.Length - nameCount);
会增加断弦量
nameCount+ (msg.Name.Length - nameCount);
将增加名称计数,因此它将在第一个 if 语句中
num = parseInt(msg.Name.slice(numberCount));
获取该实例。 我收到 NaN 错误有什么原因吗?
【问题讨论】:
-
你能提供一个
object的例子吗?默认情况下,字符串的长度属性不大写,因此除非您创建自己的属性,否则这可能是问题所在。 -
为什么不直接使用正则表达式来获取号码?
'doop10'.replace(/[^0-9.]/g, ''); // 10 -
我拼错了长度我也用了大写:(
标签: javascript substring string-length