कैसे एक पाठ क्षेत्र HTML टैग की लाइन द्वारा लाइन पढ़ने के लिए


92

मेरे पास एक पाठ क्षेत्र है जहां प्रत्येक पंक्ति में पूर्णांक मान जैसे हैं

      1234
      4321
     123445

मैं यह जांचना चाहता हूं कि क्या उपयोगकर्ता ने वास्तव में मान्य मानों की कल्पना की है और न कि कुछ मज़ेदार मूल्य जैसे कि

      1234,
      987l;

इसके लिए मुझे टेक्स्ट एरिया की लाइन को पढ़ना होगा और इसे वैलिडेट करना होगा। मैं जावास्क्रिप्ट का उपयोग करके एक पाठ क्षेत्र की रेखा से लाइन कैसे पढ़ सकता हूं?


2
मुझे 100% यकीन नहीं है (इसलिए टिप्पणी) लेकिन इसमें प्रत्येक "\ n" पर पाठ को विभाजित करना शामिल हो सकता है
प्लकरप्लाक

जवाबों:


181

इसे इस्तेमाल करे।

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
}

14
उपयोग $('textarea').val()करने के बजाय इसका उपयोग करें document.getElementById('textareaId').innerHTML
शंकरसंगोली

3
मुझे याद है कि एक और तरीका था जिसका हमने इस्तेमाल किया। हमने form.elementname या कुछ और का उपयोग किया। मेरा मतलब लंबे समय पहले से है। 6-7 साल पहले जब डोम काफी नया था
SoWhat

हाँ, आप इसका उपयोग कर भी सकते हैं। document.formname.textareName.value
ShankarSangoli

3
क्या लाइनें \ n और \ r \ n में समाप्त होने की गारंटी है?
ओज़्टैको - मोनिका सी।

उन लोगों के लिए जो 2020 में यहां हैं, मैं यह सुनिश्चित करने के लिए नहीं कह सकता कि ब्राउज़र की व्यवहार क्या था जब उपरोक्त टिप्पणियां जोड़ी गई थीं, लेकिन वर्तमान में Chrome document.getElementById ('textarea') को नहीं पहचानता है। आंतरिक HTML यह पहले से ही प्लेसहोल्डर पाठ में लोड है। DOM के मूल भार में। आपको डॉक्यूमेंट .getElementById ('textarea') का उपयोग करने की आवश्यकता होगी। उपयोगकर्ता द्वारा दर्ज या संशोधित किसी भी पाठ तक पहुंचने के लिए मूल्य। पृष्ठ लोड होने पर, प्लेसहोल्डर टेक्स्ट को <textarea> </ textarea> टैग के बीच आंतरिक HTML के रूप में रखा जाता है, लेकिन जब उपयोगकर्ता इनपुट जोड़ता है, तो इसे संशोधित नहीं किया जाता है।
एरिक बार्कर

37

यह 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

5

यह आपको सभी मान्य संख्यात्मक मान देगा lines । आप मान्य वर्णों को अलग करने के लिए लूप को बदल सकते हैं, आदि - जो भी आप चाहते हैं।

var lines = [];
$('#my_textarea_selector').val().split("\n").each(function ()
{
    if (parseInt($(this) != 'NaN')
        lines[] = parseInt($(this));
}

4
एक सामान्य नोट के रूप में, आप लगभग हमेशा आधार को 10 / दशमलव ( parseInt(this, 10)) के रूप में पढ़ने के लिए मजबूर करने के लिए दूसरा तर्क पारित करना चाहते हैं । अन्यथा, प्रमुख शून्य बेस 8 (ऑक्टल) के रूप में व्याख्या की ओर ले जाते हैं, जिससे कुछ अजीब व्यवहार हो सकता है ...
IMSoP

5

दो विकल्प: कोई 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])
}

साइड नोट, यदि आप पसंद करते हैं, तो एक नमूना लूप है

lines.forEach(function(line) {
  console.log('Line is ' + line)
})

4

एक सरल रेगेक्स आपके बनावट की जांच करने के लिए प्रभावी होना चाहिए:

/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.