Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
substr给出错误的值-javascript_Javascript_String_Substr - Fatal编程技术网

substr给出错误的值-javascript

substr给出错误的值-javascript,javascript,string,substr,Javascript,String,Substr,出于某种原因,当我执行以下操作时: var input = 'focus name (tag1 tag2 OTHER,STUFF) focus 2 (MORE)'; var openParen = input.indexOf('('); var closeParen = input.indexOf(')'); var parenStr = input.substr(openParen + 1, closeParen - 1); 我希望parenStr等于tag1 tag2其他东西 相反,我把它

出于某种原因,当我执行以下操作时:

var input = 'focus name (tag1 tag2 OTHER,STUFF) focus 2 (MORE)';
var openParen = input.indexOf('(');
var closeParen = input.indexOf(')');
var parenStr = input.substr(openParen + 1, closeParen - 1);
我希望parenStr等于tag1 tag2其他东西

相反,我把它作为tag1 tag2其他东西,焦点2。有人能给我解释一下吗?我觉得我快疯了哈哈,我试过手动输入:

input.substr(openParen + 1, 32)

但它给出了完全相同的结果。我以前使用过.substr多次,从未遇到过这种错误,我一定是遗漏了什么。

您想使用substring:

input.substringopenParen+1,closeParen


子字符串将开始索引和结束索引作为参数。substr采用的起始索引和长度参数不是您想要的。

您想要使用substring:

var input = 'focus name (tag1 tag2 OTHER,STUFF) focus 2 (MORE)';
var openParen = input.indexOf('(');
var closeParen = input.indexOf(')');
alert(input.substr(openParen + 1, closeParen - openParen - 1));
input.substringopenParen+1,closeParen


子字符串将开始索引和结束索引作为参数。substr接受一个开始索引和长度参数,这不是您想要的。

第二个参数是长度!使用最后和第一个位置之间的差值。第二个参数是长度!使用最后一个位置和第一个位置之间的差异。技术上正确,但很明显OP的意思是子字符串而不是子字符串。@Afforess那又怎样?结果是一样的。我说你在技术上是正确的。这里没有争论。@Sacho我不这么认为。技术上是正确的,但很明显OP的意思是substring而不是substr。@Afforess那又怎样?结果是一样的。我说你在技术上是正确的。这里没有辩论。@Sacho我不这么认为。
var input = 'focus name (tag1 tag2 OTHER,STUFF) focus 2 (MORE)';
var openParen = input.indexOf('(');
var closeParen = input.indexOf(')');
alert(input.substr(openParen + 1, closeParen - openParen - 1));