获取某些字母的位置

时间:2016-04-15 16:48:15

标签: javascript


我正在上学,我有一个输入框,我可以放1个字母(示例' a')我需要获得所有' a' s的所有位置在这句话中:

<p id="langezin">Minister Jet Bussemaker van Onderwijs, Cultuur en Wetenschap bracht maandag een bezoek aan SintLucas locatie Boxtel. Vanuit het Koning Willem College waren hierbij aanwezig: Cor van Gerven, Erwin Brouwer en de leerlingen Gezel schilder Rick van Hoof, Wesley Stolzenbach en de Gezel stukadoor Rick van der Werf. Doel van het bezoek van de minister was om de titel Meester, die de excellentie van iemands vakmanschap bestempelt, te bespreken en te kijken of deze binnen het mbo ingezet kan worden. Bijvoorbeeld bij een 'moderne' opleiding zoals Game art. </p>
<input type="button" value="Keer de zin om" onclick="keerZinOm();">

我需要在警告中输入的文本框中输入的字母的位置,我必须知道该句子中的字母数量。 这是我到目前为止的代码:

function getZin() {
        zin = $('#langezin').html();
    }

function zoekLetter() {
    var waarde = document.getElementById('tekst').value;
    var zin = getZin();
    var indices = [];
    for (var i = 0; i < zin.length; i++) {
        if (zin[i] === waarde) indices.push(i);
    }
    alert(indices)
}

我需要在javascript中执行此操作,除了获取#langezin

的值

6 个答案:

答案 0 :(得分:0)

要获得出现次数,您需要做的就是返回indices[]

的长度
function getZin() {
        zin = $('#langezin').html();
    }

function zoekLetter() {
    var waarde = document.getElementById('tekst').value;
    var zin = getZin();
    var indices = [];
    for (var i = 0; i < zin.length; i++) {
        if (zin[i] === waarde) indices.push(i);
    }
    alert(indices + " " + indices.length)
}

答案 1 :(得分:0)

您的代码中有一些错误,请参阅下面的工作代码段:

&#13;
&#13;
function getZin() {
    return $('#langezin').html(); // need 'return' statement
} // and don't forget include jquery library

function zoekLetter() {
    var waarde = document.getElementById('tekst').value;
    var zin = getZin();
    var indices = [];
    for (var i = 0; i < zin.length; i++) {
        if (zin[i] === waarde) indices.push(i);
    }
    alert(indices);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="langezin">Minister Jet Bussemaker van Onderwijs, Cultuur en Wetenschap bracht maandag een bezoek aan SintLucas locatie Boxtel. Vanuit het Koning Willem College waren hierbij aanwezig: Cor van Gerven, Erwin Brouwer en de leerlingen Gezel schilder Rick van Hoof, Wesley Stolzenbach en de Gezel stukadoor Rick van der Werf. Doel van het bezoek van de minister was om de titel Meester, die de excellentie van iemands vakmanschap bestempelt, te bespreken en te kijken of deze binnen het mbo ingezet kan worden. Bijvoorbeeld bij een 'moderne' opleiding zoals Game art. </p>

<input id='tekst'/>
<input type="button" value="Keer de zin om" onclick="zoekLetter();"/>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您需要在函数中返回zin

function getZin() {  
  var zin = $('#langezin').html();  
  return zin;  
}   

或只是

var zin = $('#langezin').text(); 

然后你需要做类似

的事情
var idx = 0,indices=[];
while (idx!=-1) {
  idx=zin.indexOf(waarde,idx); 
  if (idx!=-1) indices.push(idx);
}

顺便说一句,如果你需要翻转句子:

var zin = $('#langezin').text();
var omgekeerd = zin.split().reverse().join();

答案 3 :(得分:0)

你实际上根本不需要在这里使用jQuery,因为你的keerZimOm()函数应该能够在vanilla Javascript中检索你需要的所有东西。

如果您想检索特定字符或字符串出现的每个索引,您只需调整按钮触发的功能,如下所示:

<!-- This stores the character you are looking for -->
<input id='tekst' maxlength='1' />
<!-- This will call your keerZinOm() function when clicked -->
<input type="button" value="Keer de zin om" onclick="keerZinOm();">
<script>
  function keerZinOm() {
    // This will get the word you are looking for
    var waarde = document.getElementById('tekst').value;
    // This pulls your content
    var zin = document.getElementById('langezin').innerHTML;
    // Store your indices
    var indices = [];
    // Loop through and find if the character exists
    for (var i = 0; i < zin.length; i++) {
        if (zin[i] === waarde) {
          indices.push(i);
        }
    }
    // This will alert each of the indices where the letter occurs
    alert(indices);
}
</script>

同样,如果您只需要输出出现次数,只需使用数组的length属性:

alert(indices.length);

您可以在下面看到以下示例及其示例:

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <p id="langezin">Minister Jet Bussemaker van Onderwijs, Cultuur en Wetenschap bracht maandag een bezoek aan SintLucas locatie Boxtel. Vanuit het Koning Willem College waren hierbij aanwezig: Cor van Gerven, Erwin Brouwer en de leerlingen Gezel schilder Rick van Hoof, Wesley Stolzenbach en de Gezel stukadoor Rick van der Werf. Doel van het bezoek van de minister was om de titel Meester, die de excellentie van iemands vakmanschap bestempelt, te bespreken en te kijken of deze binnen het mbo ingezet kan worden. Bijvoorbeeld bij een 'moderne' opleiding zoals Game art. </p> 
  <pre>Enter a letter to search for: </pre>
  <input id='tekst' maxlength='1' />
  <br />
  <br />
  <input type="button" value="Keer de zin om" onclick="keerZinOm();">
  <script>
    function keerZinOm() {
        var waarde = document.getElementById('tekst').value;
        var zin = document.getElementById('langezin').innerHTML;
        var indices = [];
        for (var i = 0; i < zin.length; i++) {
            if (zin[i] === waarde) {
              indices.push(i);
            }
        }
        alert(indices)
    }
  </script>
</body>
</html>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

我认为在这种状态下代码只会提醒一个空数组,对不对?我确实认为你的getZin()函数不正确,因为没有return语句而你设置的变量超出了getZin()函数的范围。

这应该是正确的getZin()函数:

function getZin () {
    return $('#langezin').html();
}

然后您还需要添加一个文本框,您可以在其中输入您的输入(您要搜索的字母)。

这是一个功能齐全的JSFiddle: https://jsfiddle.net/odzd0hcm/2/

答案 5 :(得分:-1)

首先提取字母和文字。然后看看如果你用字母分割,你可以分割多少部分文本。

var letter=$('input').val();
var txt=$('#langezin').text();
var count=txt.split(letter).length - 1;