繁体   English   中英

从JavaScript字符串中切出一个字符

[英]Cut just one character out of a javascript string

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

这是id字符串:

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不允许我只剪切一个字符。 我什至手动尝试这样做,但没有运气。

有什么建议吗?

使用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)

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

我会这样

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

小提琴

看起来似乎更容易?

我认为您可以这样做:

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

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

干杯,

罗伊

编辑:

您可以根据需要使用正则表达式(这将适用于您的情况):

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

干杯,

罗伊

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM