7

split 関数を使用して Javascript の文字列を 2 つの部分に分割したいと考えています。

たとえば、私は文字列を持っています:

str='123&345&678&910'

JavaScript の分割を使用すると、4 つの部分に分割されます。しかし、遭遇する最初の '&' だけを考慮して、2 つの部分にする必要があります。

Perl の分割にあるように、次のように使用すると:

($fir, $sec) = split(/&/,str,2)

それはstrの2つの部分に分割されますが、javascriptは私にしか与えません:

str.split(/&/, 2);
fir=123
sec=345

私は秒になりたい:

sec=345&678&910

どうすればJavascriptでそれを行うことができますか.

4

6 に答える 6

6
var subStr = string.substring(string.indexOf('&') + 1);

他の回答については、この同様の質問を参照してください。

指定された文字の最初のインスタンスでのみ文字列を分割する

于 2012-06-22T07:04:08.857 に答える
4

match代わりに使用できますsplit

str='123&345&678&910';
splited = str.match(/^([^&]*?)&(.*)$/);
splited.shift();
console.log(splited);

出力:

["123", "345&678&910"]
于 2012-06-22T07:06:36.753 に答える
3

split次のトリックを使用して、その部分に留まることができます。

var str='123&345&678&910',
    splitted = str.split( '&' ),
    // shift() removes the first item and returns it
    first = splitted.shift();

console.log( first ); // "123"
console.log( splitted.join( '&' ) ); // "345&678&910"
于 2012-06-22T07:10:40.823 に答える
1

私は持っています:

var str='123&345&678&910';
str.split('&',1).concat( str.split('&').slice(1).join('&') );
//["123", "345&678&910"]



str.split('&',2).concat( str.split('&').slice(2).join('&') );
//["123", "345", "678&910"];

便宜上:

String.prototype.mySplit = function( sep, chunks) {
   chunks = chunks|=0 &&chunks>0?chunks-1:0;
   return this.split( sep, chunks )
              .concat( 
                  chunks?this.split( sep ).slice( chunks ).join( sep ):[]
               );
}
于 2012-06-22T07:51:42.893 に答える
1

私はこの関数を書きました:

function splitter(mystring, mysplitter) {
    var myreturn = [],
        myindexplusone = mystring.indexOf(mysplitter) + 1;

    if (myindexplusone) {
        myreturn[0] = mystring.split(mysplitter, 1)[0];
        myreturn[1] = mystring.substring(myindexplusone);
    }

    return myreturn;
}

var str = splitter("hello-world-this-is-a-test", "-");

console.log(str.join("<br>"));
//hello
//world-this-is-a-test​​​

出力は、空の配列 (一致しない) または 2 つの要素を持つ配列 (分割前と後のすべて) のいずれかになります。

デモ

于 2012-06-22T07:35:22.163 に答える
0

split()と?の使用についてreplace():

その文字列があるとすれば、str='123&345&678&910'できること

    var first = str.split("&",1); //gets the first word
    var second = str.replace(first[0]+"&", ""); //removes the first word and the ampersand

でインデックスを取得することが推奨さsplit()れる理由である配列を返すことに注意してください。ただし、インデックスを取得しなくても、必要に応じて機能します。first[0]first+"&"

「&」を、分割する必要がある文字列に自由に置き換えてください。

お役に立てれば :)

于 2016-09-26T09:52:23.990 に答える