我有这样的字符串;
a-variable-part[]
another-string[x]
在不知道每个字符串的长度的情况下,我想将字符串的第一部分与里面的内容分开 []
在上面的例子中,我想得到:
- “一个变量部分”,“”
- “另一个字符串”,“x”
你知不知道怎么?
我有这样的字符串;
a-variable-part[]
another-string[x]
在不知道每个字符串的长度的情况下,我想将字符串的第一部分与里面的内容分开 []
在上面的例子中,我想得到:
你知不知道怎么?
您可以使用正则表达式来查找如下两部分:
function getParts(str) {
var matches = str.match(/(^.*?)\[(.*?)\]/);
if (matches) {
return({first: matches[1], second: matches[2]});
}
return(null);
}
工作演示:http: //jsfiddle.net/jfriend00/Nn63v/
为了解释正则表达式,它匹配从字符串开头到第一个 [ 字符的第一组字符。然后,它匹配 [ 和 ] 之间的第二组字符。
如果你运行这个:
'another-string[x]'.slice(0, -1).split('[');
它会给你一个包含两个元素的数组:["another-string", "x"]
在基本层面上,这将起作用:
var myString = 'foo[bar]';
var bitInBrackets = myString.split('[')[1].split(']')[0];// will be string 'bar'
如果您要进行大量字符串操作,那么可能值得学习一些关于正则表达式的知识,但如果这就是您想要做的,并且您知道字符串将遵循这种格式,那么上面的内容就可以正常工作。
希望这可以帮助
使用正则表达式执行此操作的最佳方法
var result = input.match( /^([^\[]+)\[([^\]]+)\]$/ );