大家好,学校演习的一部分是在我的文本区打印出.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();
}
};
答案 0 :(得分:1)
你在这里混淆了很多东西。
首先,您应该只存储value
的{{1}},而不是它的长度。
然后,在应用您的RegEx后,您的textarea中的数字量将是#kommentar
变量的length
:
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;
答案 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;不是数字
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;