2017-12-04 5 views
0

私は学校での割り当てがありますが、私は完全に固執しています。サブストリングの割り当て

私の割り当て: テキストを要求してテキストを数回書き出すプログラムを作成します。最初は1文字で、次に2文字で。たとえば、ユーザーが "Thomas"と書いた場合、プログラムは "T"、 "Th"、Tho、 "Thom"などを書き出す必要があります。

私の絶望的な試み "サブストリング"とループを使って動作させようとしていましたが、正しいパスにいるかどうかわかりません。今、私のコードは次のようになります。私は正しい方向に向かったりないよ場合

<head> 
<meta charset= "UTF-8"/> 
<title> assignment14 - Johan </title> 


<script type="text/javascript"> 



var text= test.length; 

for (i=0;i< test.length;i++)  

function printit() 
{ 
var str = test; 
var res = str.substring (i, 2); 
document.getElementById("test").innerHTML = res; 
} 

    </script> 



</head> 

<body> 
<h1>Assignment 14</h1> 
    <form name="f1"> 
    <input type="text" id="test" value="" /> 
    <input type="button" value="Hämta" onclick="printit(document.getElementById('test'))" /> 


    </form> 

</body> 
はちょうど私はいくつかの他のを使用する必要があり、ヒントのいくつかの種類を必要とします機能?非常に助けに感謝します。

+0

文字列スライスを使用https://www.w3schools.com/jsref/jsref_slice_string.asp –

答えて

0

あなたは、あなたがsubstring();機能を使用することができます一つ一つを抽出したいscript.Whenを書き換える必要があります。

電話のかけ方:あなたはあなたのコードにいくつかの変更を加える必要はあり

<script type="text/javascript"> 

function printit(){ 

var test=document.getElementById("test").value; 
var text= test.length; 

for (i=0;i<= text;i++)  
{ 

    var res = test.substring (i, 0); 
    document.write(res); 
    document.write("<br/>"); 
} 
} 
    </script> 
0

あなたは正しい道にあります。 substring(start,end)は、startインデックスからendまでの文字列の連続部分を提供します。あなたはあなたのために間違った方法でそれを使用するだけです。あなたはこのようにそれを呼び出す必要があり:

substring(0,i)

0

StringObject.substring (StartPoint,endPoint);

ソリューション 1)のdocument.getElementById( 'テスト')を使用した値。 innerHTMLの代わりにテキストボックスの値を送信する必要があるので、printcl関数呼び出しでonclickを呼び出します。 2)はprintit機能空のテキストボックスに

function printit(test) 
{ 
document.getElementById('test').value=''; /*remove existing text from textbox*/ 
for (i=0;i< test.length;i++) { 
var res = str.substring (0, i+1); 
document.getElementById("test").value += ' '+res; 
} 
} 

機能 - printifを変更して、取得するために、既存のテキストに、各部分文字列を追加し、「T Thのカントートムを..」など 希望にこれは役立ちます。

0

私はこのためにfor -loopを使用しません(可能な限り、私は機能的なスタイルを好みます)。代わりに、私はサブストリングの配列を返す関数を記述します。

const substrings = string => 
    Array.from(string).map((_, i) => string.slice(0, i + 1)) 

そして、ここではsubstring()メソッドを使用してworking codepen

0

出力いくつかの時間を抽出するこのタスクを実行functionを作成し、以下のように行うことができますユーザー入力文字列buttonをクリックしてforloopsubstring()メソッドを使用します。

var intp = document.querySelector("input"); 
 
var btn = document.querySelector("button"); 
 
var dv = document.querySelector("div"); 
 
btn.onclick = function() { 
 
    var b = intp.value; 
 
    for (var i = 1; i <= b.length; i++) { 
 
    var c = b.substring(0, i); 
 
    dv.innerHTML += c + "<br/>"; 
 
    } 
 
}
div{ 
 
    width:400px; 
 
    background:#111; 
 
    color:yellow; 
 
}
<input type="text"> 
 
<button>Click</button> 
 
<br/><br/> 
 
<div></div>

あなたがこれを行うための正しい方法を使用しているが、ユーザの一つが提案するようsubstring()startend値が正しくありませんでした。