如何在textarea中打印出数量?

时间:2018-02-26 09:26:02

标签: javascript html

大家好,学校演习的一部分是在我的文本区打印出.length个数字。换句话说,如果textarea中有字符串,它应该只计算数字。

HTML:

<form>
    <p class="ptags">Kommentar:</p>
    <textarea id="kommentar" rows="5"></textarea>
    <p>Kommentar Ziffern</p>
    <p id="ikomm"></p>
</form>

使用Javascript:

/*Anzahl Ziffern in der Kommentarbox*/
function zkommentar(){
    var zkomm = document.getElementById('kommentar').value.length;
    var numbers = zkomm.match(/\d+/g).map(Number);
    var string = parseInt(numbers);
    document.getElementById('ikomm').innerHTML = numbers;
}
/*Ausgabe*/
function Ausgabe() {
    {
        document.getElementById('Ausgabe').innerHTML =
            namelength();
            kommentar();
            uhrzeit();
            datum();
            bdata();
            quadrat();
            quersumme();
            zkommentar();
    }
};

3 个答案:

答案 0 :(得分:1)

你在这里混淆了很多东西。

首先,您应该只存储value的{​​{1}},而不是它的长度。

然后,在应用您的RegEx后,您的textarea中的数字量将是#kommentar变量的length

&#13;
&#13;
numbers
&#13;
function zkommentar() {
  var zkomm = document.getElementById('kommentar').value;
  var numbers = zkomm.match(/\d/g).map(Number);
  var string = numbers.length;
  document.getElementById('ikomm').innerHTML = string;
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

要获得数字的长度,您可以使用\d作为正则表达式,它将匹配所有数字,而不是匹配一个或多个数字的\d+

Match可以返回null,因此您首先应该检查它:

var zkomm = document.getElementById('kommentar').value;
var numbers = zkomm.match(/\d/g)
if (numbers) {
    numbers = numbers.map(Number);
    var string = numbers.length;
    document.getElementById('ikomm').innerHTML = string;
}

答案 2 :(得分:0)

以前的答案并不关心实数

例如&#34; 1s&#34;不是数字

&#13;
&#13;
AtmosphereHandler
&#13;
function zkommentar() {
  var zkomm = document.getElementById('kommentar').value;
  var numbers = zkomm.split(' ').filter(_isNumber);
  var string = numbers.length;
  document.getElementById('ikomm').innerHTML = string;
}

function _isNumber(value) {
    return Number.isFinite(+value)
        ? value
        : null;
}
&#13;
&#13;
&#13;