2016-06-15 3 views
0

Возможно ли определить структуру одной строки в текстовом поле. Например, это мое текстовое поле, и это содержаниеКак обнаружить, что предыдущая строка в текстовом поле пуста

this is the first line in textarea 
1234 this is the second line starting with 1234 

this is the fourth line and the third line is empty 

Так что я хочу, чтобы обнаружить пустые строки, как line 3, а также обнаружить первые 4 символа в строке как line 2. Возможно ли это с помощью jQuery или JavaScript?

+3

Возможного дубликат [JQuery каждая строка в textarea] (http://stackoverflow.com/questions/19858412/jquery-each-line-in-textarea) – danielrsmith

+0

Вы хотите обнаружить пустые строки и сделать * what * с ними? Чтобы ответить на ваши вопросы: да, можно обнаружить пустые строки, и да, можно обнаружить первые 4 символа в строке. – Marcus

ответ

1

Значение в textarea - это просто строка, которую вы можете разделить на новые строки, чтобы получить каждую строку.

var arrayOfLines = $('textarea').val().split('\n'); 
var finalString = ""; 
var prevBoolean = false; 
for (var i = 0; i < arrayOfLines.length; i++) { 
    var line = arrayOfLines[i]; 

    if (line.length === 0) { 
     console.log("empty line"); 
    } else { 
     // if the first 4 characters of the line are "1234" set prevBoolean to true 
     if (line.substring(0, 4) == "1234"){ 
      finalString += line + "\n"; 
      prevBoolean = true; 
     } else { 
      // add custom line, if the previous non-empty line started with "1234" and set prevBoolean back to false 
      if (prevBoolean == true) { 
       prevBoolean = false; 
       finalString += "custom line" + "\n"; 
      } else { 
       finalString += line + "\n"; 
      } 

     } 
    } 
} 

// set the value of the textarea to the finalString 
$('textarea').val(finalString); 
+0

Чтобы добавить здесь некоторое объяснение, вы можете зафиксировать значение текстового поля и разделить его на разрывы строк. Это то место, куда попадает пользователь, а не где текст обертывается. Затем вы можете перебирать строки текста и тестировать их, как вам нравится. В вашем случае вы хотите искать пустые строки или проверять содержимое непустых строк. –

+0

Спасибо, но, пожалуйста, например, я хочу изменить значение 'line 4', если предыдущая строка начинается с' 1234', пожалуйста, как мне это сделать? –

+0

@ TheKingis проверить изменения в моем сообщении. Он должен делать то, что вы хотите. – Kairat

0

Намного проще, более лаконичное решение с использованием $.each(), как мы можем перебирать объект, и проверить пустых линий и/или линий, которые начинаются с 1234:

const arr = $('textarea').val().split('\n'); 
$.each(arr, (k, v) => { 
    if (v.length === 0) console.log(k + ' is empty'); 
    if (v.substring(0, 4) == 1234) console.log('1234 found in key: ' + k); 
}); 
Смежные вопросы