1

私はそのような文字列を持っています。

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

各文字列の長さを知らずに、文字列の最初の部分を [] の内部から分離したい

上記の例では、取得したい:

  • 「変数部分」、「」
  • 「別の文字列」、「x」

どのようにするか知っていますか?

4

4 に答える 4

4

次のように、正規表現を使用して 2 つの部分を見つけることができます。

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

実際のデモ: http://jsfiddle.net/jfriend00/Nn63v/

正規表現を説明すると、文字列の先頭から最初の [ 文字までの最初の文字グループに一致します。次に、[ と ] の間にある 2 番目の文字グループに一致します。

于 2012-10-28T15:44:17.670 に答える
2

これを実行する場合:

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

それはあなたに2つの要素の配列を与えるでしょう:["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 に答える