子串分配

时间:2017-12-04 06:31:31

标签: javascript substring

我在学校有一份工作,但我完全被困了。

我的任务: 制作一个要求文本的程序,然后多次写出文本。首先只有一个字母,然后是两个,依此类推。例如,如果用户写了#34; Thomas",你的程序应该写出" T"," Th," Tho," Thom"等等。

我无望的尝试 我一直试图使用" Substring"以及让它发挥作用的循环,但我不确定我是否在正确的道路上。现在我的代码看起来像这样:

<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>

只需要某种提示如果我正朝着正确的方向前进,我应该使用其他功能吗?非常感谢您的帮助。

5 个答案:

答案 0 :(得分:0)

你是正确的方式。 javascript中的substring(start,end)为您提供从start索引到end的字符串连续部分。你只是以错误的方式使用它来处理你的情况。你必须这样称呼它:

substring(0,i)

答案 1 :(得分:0)

你必须重写一个脚本。当你想逐个提取时,你可以使用substring();函数。

如何致电: StringObject.substring (StartPoint,endPoint);

<强>解决方案:

<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>

答案 2 :(得分:0)

您需要对代码进行一些更改: 1)在onclick上的printit函数调用中使用document.getElementById('test')。value,因为你必须发送文本框的值而不是innerHTML。 2)修改原理功能 -

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;  
}
}

在printit函数中清空文本框,然后将每个子字符串附加到现有文本以获得“T Th Tho Thom ..”等等 希望这会有所帮助。

答案 3 :(得分:0)

我没有使用for - 循环(只要有可能,我更喜欢功能风格)。相反,我编写了一个返回子串数组的函数:

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

这里是working codepen

答案 4 :(得分:0)

使用substring()方法输出几次可以如下完成,创建function执行此任务,使用buttonforloop点击时提取用户输入的字符串, substring()方法。

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>

您已使用正确的方法执行此操作,但正如用户之一所示,start的{​​{1}}和end值不正确。