2016-03-31 5 views
0
var str = "test test1 test2 test3"; 

"test1"と "test2 test3"を取得する方法はありますか? (第2のスペースの後に第二空間と何も前に何でも)JavaScriptを使用して文字列内の2番目のスペースの前後に部分文字列を取得しますか?

+1

つの可能なアプローチ:正規表現。スペースで文字列を分割し、必要なコンポーネントを再構築します。 –

+3

これまでに試したことはありますか? – Victor

答えて

3

あなたは、文字列は、少なくとも2つのスペースがある知っていると仮定すると:あなたがわからない場合

var str = "test test1 test2 test3"; 

var index = str.indexOf(' ', str.indexOf(' ') + 1); 

var firstChunk = str.substr(0, index); 
var secondChunk = str.substr(index + 1); 

を:

var str = "test test1 test2 test3"; 

var index = str.indexOf(' ', str.indexOf(' ') + 1); 

var firstChunk = index >= 0 ? str.substr(0, index) : str.substr(index + 1); 
if (index >= 0) 
    var secondChunk = str.substr(index + 1); 
+0

作品!とてもかっこいい;ありがとう! – faalbane

+0

あなたは歓迎です@faalbane – Paulpro

+0

こんにちは、コードはうまくありがとうございます...しかし、先頭の2つの単語と次の2つの単語を取得する方法の先頭のスペースがある場合は?言い換えれば、3spaceでこれを行う方法は?任意のヘルプは感謝しています:) – RRR

2

splitを使用し、配列の一部の機能

var str = "test test1 test2 test3"; 
 

 
var n = 2; // second space 
 

 
var a = str.split(' ') 
 
var first = a.slice(0, n).join(' ') 
 
var second = a.slice(n).join(' '); 
 

 
document.write(first + '<br>'); 
 
document.write(second);

0

正規表現の代替:

var str = "test test1 test2 test3", 
    parts = str.match(/^(\S+? \S+?) ([\s\S]+?)$/); 

console.log(parts.slice(1,3)); // ["test test1", "test2 test3"] 
関連する問題