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

Posted

技术标签:

【中文标题】使用 Javascript 从 Textarea 中的每个换行符添加数字【英文标题】:Add Numbers from Each Line Break in Textarea with Javascript 【发布时间】:2017-06-01 22:47:31 【问题描述】:

我在文本区域中有以下内容:

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

我需要删除“|”之前的字符在每一行上并得到所有数字的总和

任何帮助将不胜感激!

【问题讨论】:

那么你卡在哪里了?我们不知道您具体在哪里需要帮助。您尝试了什么未能产生预期的结果? 我对 javascript/Jquery 没有经验,所以我需要帮助。我知道我想要达到的目标,如我的帖子所述。不知道怎么写代码…… 还有为什么我的原始帖子被否决和编辑?这是一个合理的问题,其他人可能会觉得对他们的项目有用。 你被否决了,因为这个问题没有显示解决问题的努力。个人研究是第一步。否决票是合法的。 这是一个学习和分享脚本语言的地方/社区。如果一个人不知道正确的语言,如何尝试解决他们不知道的事情?这不是合法的反对票,而是对系统的滥用,并且会阻止其他人使用该网站,因为他们会觉得在不受到惩罚的情况下寻求帮助不是一个安全的地方。投反对票给你。并感谢所有帮助过的人! 【参考方案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=>x.split('|')[1] * 1) 3) 对每个元素求和:reduce((a,b)=>a+b)

【讨论】:

太棒了!简短但完美的解决方案!谢谢!【参考方案2】:

另一种解决方案:

  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>

【讨论】:

很好的解决方案!【参考方案3】:

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

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);
<textarea id="text">link|10000 link|25000 link|58932
</textarea>

【讨论】:

完美!非常感谢!

以上是关于使用 Javascript 从 Textarea 中的每个换行符添加数字的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Javascript AJAX 从 Summernote textarea 获取价值发送帖子数据

如何使用 JavaScript 获取 <textarea > 中的行数?

如何使用javascript替换textarea元素中的文本? [复制]

javascript 操作 textarea

JavaScript 使用 CharAt 从输入文本中获取

html 中 SMS TextArea 的 Javascript 字符计数器