2017-01-17 7 views
-4

У меня есть следующие в текстовое поле:Добавить номера из каждой строки Перерыв в TEXTAREA с Javascript

ссылка | 10000
ссылка | 25000
ссылка | 58932

мне нужно удалите символы перед символом «|» на каждой строке и получить сумму всех номеров

Любая помощь будет принята с благодарностью!

+1

Итак, где вы застряли? Мы не знаем конкретно, где вам нужна помощь. Что вы пробовали, что не удалось добиться желаемого результата? –

+0

Я не испытываю Javascript/Jquery, поэтому мне нужна помощь. Я знаю, чего я пытаюсь достичь, как описано в моем посте. Я не уверен, как написать код ... –

+0

Также почему downvote и редактировать на моем оригинальном посте? Это законный вопрос, который другие могут найти полезными для своих проектов. –

ответ

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 ('\ п')
2) Foreach линии, перерыв на "|", получает второй пункт и преобразовать его в номер: карта (x => x.split ('|') [1] * 1)
3) Суммировать каждый элемент: уменьшить ((a, b) => a + b)

+0

Используйте код – Teshtek

+0

Отлично! Короткое, но идеальное решение! Спасибо! –

0

Получить все числа из значения, используя метод 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>

+1

Отлично! Спасибо огромное! –

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>

+0

Отличное решение! –

 Смежные вопросы

  • Нет связанных вопросов^_^