2016-11-26 13 views
2

JavaScriptの文字列からすべての部分文字列を取得する次の関数があります。私はそれが正しいのではないことを知っていますが、私はそれについて正しい方法で行くように感じています。どんなアドバイスも素晴らしいでしょう。JavaScript内の文字列のすべての部分文字列を取得

var theString  = 'somerandomword', 
    allSubstrings = []; 

getAllSubstrings(theString); 

function getAllSubstrings(str) { 

    var start = 1; 

    for (var i = 0; i < str.length; i++ ) { 

    allSubstrings.push(str.substring(start,i)); 

    } 

} 

console.log(allSubstrings) 

編集:ご質問が不明な場合はお詫び申し上げます。部分文字列では、文字列からの文字のすべての組み合わせを意味します(実際の単語である必要はありません)。文字列が 'abc'ならば[a、ab、abc、b、ba、bacなど...]ありがとうすべての回答について

+3

「すべて」という部分文字列はどういう意味ですか? –

+0

あなたはどんな出力を期待していますか? – Aruna

+0

これは役に立ちます http://stackoverflow.com/questions/4547609/how-do-you-get-a-string-to-a-character-array-in-javascript –

答えて

7

サブストリングには2つのネストループが必要です。

function getAllSubstrings(str) { 
 
    var i, j, result = []; 
 

 
    for (i = 0; i < str.length; i++) { 
 
     for (j = i + 1; j < str.length + 1; j++) { 
 
      result.push(str.slice(i, j)); 
 
     } 
 
    } 
 
    return result; 
 
} 
 

 
var theString = 'somerandomword'; 
 
console.log(getAllSubstrings(theString));
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

ありがとうございました。 – user2085143

+0

この解決法は文字列の一部のみを与えますが、それを置換することはありません。 –

-3
var theString = 'somerandomword', 
var allSubstrings = theString.Split(''); 

allSubstrings == >> [ 'S'、 'O'、 'M'、 'E'、R ''、 ''、 'N'、

+1

http://stackoverflow.com/questions/4547609/how-do-you-get-a-string-to-a-character-array-in-javascript –

+1

こちらを参照してください:https://developer.mozilla.org/ ja-jp/docs/Web/JavaScript /リファレンス/ Global_Objects/String/split –

関連する問題