使用Javascript从Textarea中的每个换行符添加数字

时间:2017-01-17 18:32:39

标签: javascript jquery textarea

我在textarea中有以下内容:

  

链路| 10000
  链接| 25000
  链路| 58932

我需要删除" |"之前的字符。在每一行上获得所有数字的总和

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

另一种解决方案:



  function myFunction() {
document.getElementById("demo").innerHTML = document.getElementById("myTextarea").value.split("link|").map(Number).reduce(function(a, b){return  a+b; });
}

Calculate:<br>
<textarea id="myTextarea">
link|10000
link|25000
link|58932</textarea>

<p>Click the button to calculate.</p>

<button type="button" onclick="myFunction()">Calculate it</button>
 <p id="demo"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

一个简短的解决方案:

// Gets textarea content
var myTextareaText = document.getElementById('my-textarea-id').value;

// Uses array functions to simplify the process
let sum = myTextareaText.split('\n').map(x=>x.split('|')[1] * 1).reduce((a,b)=>a+b);

// Logs de result
console.log(sum);

做了什么:

1)按换行符断开:myTextareaText.split('\ n')
2)Foreach行,以“|”为中断,得到第二项并将其转换为数字:map(x =&gt; x.split('|')[1] * 1)
3)求和每个元素:reduce((a,b)=&gt; a + b)

答案 2 :(得分:0)

使用String#match方法从值中获取所有数字,并使用Array#reduce方法计算总和。

&#13;
&#13;
var ele = document.getElementById('text');

// get the text area value 
var res = ele.value
  // get all digits combinations , if you want decimal number then use /\d+(\.\d+)?/g
  .match(/\d+/g)
  // iterate and calculate the sum
  .reduce(function(sum, v) {
    // parse the number and add it with previous value
    return sum + Number(v);
    // set initial value as 0
  }, 0);

console.log(res);
&#13;
<textarea id="text">link|10000 link|25000 link|58932
</textarea>
&#13;
&#13;
&#13;