出于某种原因,当我执行以下操作时:
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()
吨次并且之前从未遇到过这种错误,我必须遗漏一些东西。
答案 0 :(得分:6)
您打算使用子字符串:
input.substring(openParen + 1, closeParen);
substring
将起始和结束索引作为参数。 substr
采用起始索引和长度参数,这不是您的意图。
答案 1 :(得分:-2)
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));