给出错误值的子字符串-javascript

substr giving wrong value - javascript

本文关键字:字符串 -javascript 出错 错误      更新时间:2023-09-26

由于某些原因,当我执行以下操作时:

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 OTHER,STUFF"

相反,我得到的是"tag1 tag2 OTHER,STUFF) focus 2 "。有人能向我解释一下吗?我觉得我快要疯了哈哈,我试着手动输入:

input.substr(openParen + 1, 32)

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

您打算使用子字符串:

input.substring(openParen + 1, closeParen);

CCD_ 6以起始索引和结束索引作为参数。substr采用一个起始索引和长度参数,这不是您想要的。

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));