我想使用分割功能将Javascript中的字符串分成两部分。
例如我有字符串:
str='123&345&678&910'
如果我使用javascripts split,它将它分成4部分。 但是我只需考虑第一个'&'就需要它分为两个部分。它遇到了什么。
正如我们在Perl中所做的那样,如果我使用的话:
($fir, $sec) = split(/&/,str,2)
它将str分为两部分,但是javascript只给了我:
str.split(/&/, 2);
fir=123
sec=345
我希望秒为:
sec=345&678&910
我如何在Javascript中完成。
答案 0 :(得分:6)
var subStr = string.substring(string.indexOf('&') + 1);
查看其他答案的类似问题:
答案 1 :(得分:4)
您可以使用match
代替split
:
str='123&345&678&910';
splited = str.match(/^([^&]*?)&(.*)$/);
splited.shift();
console.log(splited);
输出:
["123", "345&678&910"]
答案 2 :(得分: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"
答案 3 :(得分: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个元素的数组(在拆分之前和之后的所有内容)
<强> Demo 强>
答案 4 :(得分: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 ):[]
);
}
答案 5 :(得分: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]
的索引推荐的原因,但是,如果没有获得索引,它仍然可以根据需要工作,即{ {1}}。
随意更换&#34;&amp;&#34;使用您需要拆分的字符串。
希望这有帮助:)