1

我有这样的字符串;

a-variable-part[]
another-string[x]

在不知道每个字符串的长度的情况下,我想将字符串的第一部分与里面的内容分开 []

在上面的例子中,我想得到:

  • “一个变量部分”,“”
  • “另一个字符串”,“x”

你知不知道怎么?

4

4 回答 4

4

您可以使用正则表达式来查找如下两部分:

function getParts(str) {
    var matches = str.match(/(^.*?)\[(.*?)\]/);
    if (matches) {
        return({first: matches[1], second: matches[2]});
    }
    return(null);
}

工作演示:http: //jsfiddle.net/jfriend00/Nn63v/

为了解释正则表达式,它匹配从字符串开头到第一个 [ 字符的第一组字符。然后,它匹配 [ 和 ] 之间的第二组字符。

于 2012-10-28T15:44:17.670 回答
2

如果你运行这个:

'another-string[x]'.slice(0, -1).split('[');

它会给你一个包含两个元素的数组:["another-string", "x"]

于 2012-10-28T15:47:53.817 回答
0

在基本层面上,这将起作用:

var myString = 'foo[bar]';

var bitInBrackets = myString.split('[')[1].split(']')[0];// will be string 'bar'

如果您要进行大量字符串操作,那么可能值得学习一些关于正则表达式的知识,但如果这就是您想要做的,并且您知道字符串将遵循这种格式,那么上面的内容就可以正常工作。

希望这可以帮助

于 2012-10-28T15:46:57.780 回答
0

使用正则表达式执行此操作的最佳方法

var result = input.match( /^([^\[]+)\[([^\]]+)\]$/ );
于 2012-10-28T15:50:10.493 回答