的字符串我有一个字符串:如何从第二组括号
服务[自定义] [mainData]
我怎样才能得到字符串mainData
?
我曾尝试:
var result = id.match('\[(.*?)\]');
alert(result[1]);
var result = id.match(\[(.*?)\]);
alert(result[1]);
无济于事。对于我来说,使用一组括号是很简单的,第二组就是让我失望的。
的字符串我有一个字符串:如何从第二组括号
服务[自定义] [mainData]
我怎样才能得到字符串mainData
?
我曾尝试:
var result = id.match('\[(.*?)\]');
alert(result[1]);
var result = id.match(\[(.*?)\]);
alert(result[1]);
无济于事。对于我来说,使用一组括号是很简单的,第二组就是让我失望的。
当您想要提取第二对括号时,只需匹配第一对括号即可。
var result = id.match(/\[(.*?)\]\[(.*?)\]/);
与您id
是services[custom][mainData]
的例子,现在result[1]
将custom
和result[2]
将mainData
。
这regex应该为你做,只要你抓住了正确的组合!
如果字符串总是以这种格式存在,那么您并不需要一个复杂的正则表达式,您只需分割][
并取出剩余的字符串,而不需要最后一个]
。喜欢的东西:
id.split('][').pop().slice(0, -1);
这里的每个步骤注释代码:
var id = 'services[custom][mainData]';
var result = id.split('][') // split on `][` gives [ 'services[custom', 'mainData]' ]
.pop() // take the last match gives 'mainData]'
.slice(0, -1); // trim the last char gives 'mainData'
console.log(result); // logs 'mainData'
您可以使用一个贪婪.*
匹配[
和]
之前,确保你总是匹配最后[...]
:
var str = 'services[custom][mainData]';
var result = str.match(/.*\[([^\]\[]*)\]/)[1];
console.log(result); //mainData
这工作:
var test = "services[custom][mainData]";
var re = /\[(\w+)\]\[(\w+)\]/g;
var res = re.exec(test);
document.write(res[2]);
是串总是在格式? – nem035
如果它总是你想要的最后一个,只需'/ \ [([^ \]] *)\] $ /'应该为你做。 – ClasG