Javascript子字符串的行为异常

Javascript子字符串的行为异常,javascript,substring,Javascript,Substring,我创建了一个函数,可以将24小时字符串(也称为“0800”或“2330”)转换为分钟。有时字符串会删除前导零,所以我需要对此进行说明 它可以工作,但为了获得分钟分量,我尝试获取字符串的最后两个字符,我们可以假设这两个字符是: var timeString = "800"; //Can be "0800" timeString.substring(timeString.length - 2, 2) 如果字符串是“800”(前导零已删除),那么它将等效于 timeString.substring(

我创建了一个函数,可以将24小时字符串(也称为“0800”或“2330”)转换为分钟。有时字符串会删除前导零,所以我需要对此进行说明

它可以工作,但为了获得分钟分量,我尝试获取字符串的最后两个字符,我们可以假设这两个字符是:

var timeString = "800"; //Can be "0800"
timeString.substring(timeString.length - 2, 2)
如果字符串是“800”(前导零已删除),那么它将等效于

timeString.substring(3 - 2, 2)
然而,这并没有带来任何回报。如果我使用以下代码,我只会得到“00”(我正在寻找的):

timeString.substring(timeString.length, 2)
对我来说,这个代码是错误的,但不知怎的,它是有效的


有人能解释为什么吗?我是否误解了此函数的工作原理?

子字符串方法中的第二个参数不是所需的字符数,而是所需的索引。所以现在你要从子字符串(3-2,2),索引2到索引2,它不给你字符

将其更改为:

timeString.substring(timeString.length-2, timeString.length)

substring方法中的第二个参数不是所需的字符数,而是所需的索引。所以现在你要从子字符串(3-2,2),索引2到索引2,它不给你字符

将其更改为:

timeString.substring(timeString.length-2, timeString.length)

这里的第二个参数是to字符的索引。
您要查找的是substr函数。

这里的第二个参数是to字符的索引。
您要查找的是substr函数。

您将
substring()
函数与
substr()
函数混淆了
substring()
的第二个参数是子字符串的结束索引,而
substr()
的第二个参数是字符串的长度


尝试用
substring()
替换
substring()

您将
substring()
函数与
substr()
函数混淆了
substring()
的第二个参数是子字符串的结束索引,而
substr()
的第二个参数是字符串的长度


尝试将
substr()
替换为
substring()

因此,您要做的是,将文本从索引2获取到2,这显然是一个空字符串。您确实想在这里使用String.prototype.slice。它允许您使用负参数作为从末尾开始索引的方式(基本上是字符串长度-索引)。指定第二个参数将提取所有内容,直到字符串结束

timeString.slice(-2)

所以你要做的是,从索引2到2获取文本,这显然是一个空字符串。您确实想在这里使用String.prototype.slice。它允许您使用负参数作为从末尾开始索引的方式(基本上是字符串长度-索引)。指定第二个参数将提取所有内容,直到字符串结束

timeString.slice(-2)

“0800”是函数的结果或输入?
string.substring(from,to)
您的意思可能是
string.substr(start,length)
“0800”是函数的结果或输入?
string.substring(from,to)
您的意思可能是
string.substr(start,length)
ahhh!我看错了文件。在几乎所有其他语言中,子字符串通过
子字符串(位置、长度)工作
到`-谢谢!!啊!我看错了文件。在几乎所有其他语言中,子字符串通过
子字符串(位置、长度)工作
到`-谢谢!!