从javascript字符串中只剪切一个字符

时间:2014-03-12 20:22:00

标签: javascript

我想删除字符串最后一个括号内的内容。

这是ids字符串:

rule_Group[0][5]

这是我的Javascript代码

var str = 'rule_Group[0][5]';

var a = str.lastIndexOf("[") + 1;
var b = str.lastIndexOf("]") - 1;
var res = str.substr(a,b)

document.write(res)

我想把5放在括号中。无论JS不允许我只剪出一个角色。我甚至手动试图这样做没有运气。

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

使用substring代替substr

var str = 'rule_Group[0][5]';

var a = str.lastIndexOf("[") + 1;
var b = str.lastIndexOf("]");
var res = str.substring(a,b)

document.write(res)

答案 1 :(得分:0)

substr的第二个参数是要返回的子字符串的长度,而不是索引。所以如果你知道你只想要一个角色,那就可以了:

var a = str.lastIndexOf("[") + 1;
var res = str.substr(a, 1);

如果你不知道子串的长度,请使用:

var a = str.lastIndexOf("[") + 1;
var b = str.lastIndexOf("]");
var res = str.substr(a, b - a);

答案 2 :(得分:0)

我会这样做

var str = 'rule_Group[0][5]';
var numb = str.split('[').pop().replace(']','');

FIDDLE

看起来更容易?

答案 3 :(得分:0)

我认为你可以这样做:

var a = str.lastIndexOf("[")+1;
var res = str.charAt(a);

尝试一下,让我知道它是否有效: - )

干杯,

Roiw

编辑:

如果需要,您可以使用正则表达式(这适用于您的情况):

var str = "rule_Group[0][123456789]";
var patt1=new RegExp("^.*?\\[.*?\\[");  
var patt2=new RegExp("\\].*?$");
var result = str.replace(patt1,"");
result = result.replace(patt2,"");

干杯,

Roiw