2013-02-28 8 views
9

है, इसलिए मुझे टेक्स्टरेरा का HTML प्राप्त करना होगा और जांचें कि इसमें लाइन ब्रेक है या नहीं। मैं कैसे देख सकता हूं कि इसमें \n है क्योंकि val() का उपयोग कर स्ट्रिंग रिटर्न में \n नहीं है और मैं इसे पहचानने में सक्षम नहीं हूं। मैंने .split("\n") का उपयोग करने की कोशिश की लेकिन यह एक ही परिणाम दिया। यह कैसे किया जा सकता है ?जांचें कि क्या स्ट्रिंग में लाइन ब्रेक

एक मिनट, आईडीके क्यों जब मैं \n को टेक्स्टरेरा में मान के रूप में जोड़ता हूं, तो यह टूट जाता है और अगली पंक्ति में जाता है।

+0

क्या आप सुनिश्चित हैं कि आपके एचटीएमएल में \ n'' लेकिन '
' नहीं है? – VisioN

+0

आपको केवल इनपुट तत्व के रूप में '.val()' का उपयोग करने की आवश्यकता है। खाता लाइन रैपिंग भी लें, जो न्यूलाइन अक्षरों को जोड़ नहीं रहा है। –

+0

मुझे डाउनवोट समझ में नहीं आया ... यह एक बिल्कुल वैध सवाल है। –

उत्तर

24

एचटीएमएल में लाइन ब्रेक \n या \r द्वारा प्रदर्शित नहीं हैं। उन्हें <br> तत्व, या किसी अन्य ब्लॉक तत्व के बाद किसी भी ब्लॉक तत्व (उदाहरण के लिए, <p></p><p></p>) सहित कई तरीकों से प्रदर्शित किया जा सकता है।

आप एक textarea का उपयोग कर रहे हैं, तो आप लाइन ब्रेक के लिए \n या \r (या \r\n) मिल सकता है, तो:

var text = $("#theTextArea").val(); 
var match = /\r|\n/.exec(text); 
if (match) { 
    // Found one, look at `match` for details, in particular `match.index` 
} 

Live Example | Source

... लेकिन यह केवल textarea एस है, सामान्य रूप से HTML तत्व नहीं।

+0

क्या नई लाइन की स्ट्रिंग इंडेक्स प्राप्त करने का कोई तरीका है? – rotaercz

+1

@rotaercz: 'RegExp # exec' और यह क्या लौटाता है देखें। –

+0

आह, धन्यवाद। मुझे लगता है कि यह एक बुलियन लौटा दिया। – rotaercz

5
var text = $('#total-number').text(); 
var eachLine = text.split('\n'); 
    alert('Lines found: ' + eachLine.length); 
    for(var i = 0, l = eachLine.length; i < l; i++) { 
     alert('Line ' + (i+1) + ': ' + eachLine[i]); 
    } 
संबंधित मुद्दे