У меня есть текстовая область, где каждая строка содержит целочисленное значение, как показано ниже
1234
4321
123445
Я хочу проверить, действительно ли пользователь ввел допустимые значения, а не какие-то забавные значения, такие как следующие
1234,
987l;
Для этого мне нужно прочитать строку за строкой текстовой области и проверить это. Как я могу читать строку за строкой в текстовой области с помощью javascript?
javascript
jquery
html
textarea
Саураб Кумар
источник
источник
Ответы:
Попробуй это.
var lines = $('textarea').val().split('\n'); for(var i = 0;i < lines.length;i++){ //code here using lines[i] which will give you each line }
источник
$('textarea').val()
используйтеdocument.getElementById('textareaId').innerHTML
вот это.Это работает без использования jQuery:
var textArea = document.getElementById("my-text-area"); var arrayOfLines = textArea.value.split("\n"); // arrayOfLines is array where every element is string of one line
источник
Это даст вам все допустимые числовые значения в формате
lines
. Вы можете изменить цикл для проверки, удаления недопустимых символов и т. Д. - как хотите.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }
источник
parseInt(this, 10)
). В противном случае начальные нули приводят к интерпретации как основание 8 (восьмеричное), что может привести к довольно странному поведению ...Два варианта: не требуется JQuery или версия JQuery.
Нет JQuery (или чего-то еще)
var textArea = document.getElementById('myTextAreaId'); var lines = textArea.value.split('\n'); // lines is an array of strings // Loop through all lines for (var j = 0; j < lines.length; j++) { console.log('Line ' + j + ' is ' + lines[j]) }
Версия JQuery
var lines = $('#myTextAreaId').val().split('\n'); // lines is an array of strings // Loop through all lines for (var j = 0; j < lines.length; j++) { console.log('Line ' + j + ' is ' + lines[j]) }
Боковое примечание, если вы предпочитаете forEach, образец цикла
lines.forEach(function(line) { console.log('Line is ' + line) })
источник
Простое регулярное выражение должно быть эффективным для проверки вашего текстового поля:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
источник