2011-10-30 22 views
5

मैं एक HTML दस्तावेज़ में © के लिए देखना चाहता हूं, और मूल रूप से उस इकाई को प्राप्त करता है जिसे कॉपीराइट का श्रेय दिया जाता है।regex के साथ HTML टेक्स्ट तत्व का चयन करें?

कॉपीराइट लाइन अलग अलग तरीकों की एक जोड़ी दिखाता है:

<p class="bg-copy">&copy; 2011 The New York Times Company</p> 

या

<a href="http://www.nytimes.com/ref/membercenter/help/copyright.html"> 
&copy; 2011</a> 
<a href="http://www.nytco.com/">The New York Times Company</a> 

या

<br>Published since 1996<br>Copyright &copy; CounterPunch<br> 
All rights reserved.<br> 

मैं दिनांक और बीच के टैग को अनदेखा करने के लिए और बस मिल चाहते हैं "द न्यूयॉर्क टाइम्स कंपनी" या "काउंटरपंच"।

मुझे जावास्क्रिप्ट या JQuery के साथ रेगेक्स का उपयोग करने में बहुत कुछ नहीं मिला है, हालांकि मुझे लगता है कि इससे प्रमुख सिरदर्द हो सकता है। यदि इसके लिए एक बेहतर दृष्टिकोण है, तो मुझे बताएं।

+0

regex का उपयोग न करें, बल्कि डोम पेड़ का उपयोग आप के लिए क्या देख रहे खोजने के लिए। कुछ लिंक: http://www.howtocreate.co.uk/tutorials/javascript/dombasics – FailedDev

+0

आम तौर पर आपको जो प्रतिक्रिया मिलती है वह है - कृपया, जेएस पार्सिंग के लिए रेगेक्स का उपयोग न करें। जेएस पार्सर का प्रयोग करें। सवाल यह है - क्या आप कर सकते हैं? – ZenMaster

+0

@FailedDev ने लगभग इसे बनाया ... – ZenMaster

उत्तर

2

एक मजबूत समाधान के लिए, आपको शायद डोम नेविगेशन और कुछ हेरिस्टिक्स के संयोजन की आवश्यकता होगी। आपके उदाहरण रेगेक्स के साथ सुलभ हैं, लेकिन कई और परिदृश्य संभव हैं ...

&copy;[\s\d]*(?:<\/.+?>[^>]*>)?([^<]*) 

आपके तीन नमूने के लिए काम करता है। लेकिन केवल उनके लिए और इसी तरह के मामलों के लिए।

पर rubular

स्पष्टीकरण देखें:

&copy; // copyright symbol 
[\s\d]* // followed by spaces or digits 
(?:</.+?>[^>]*>)? // maybe followed by a closing tag and another opening one 
([^<]*) // than match anything up to the next tag 

कैसे jQuery के साथ जावास्क्रिप्ट में उपयोग करने पर this उत्तर देखें। मूल रूप से आप मैच (/ regex /) फ़ंक्शन का उपयोग कर सकते हैं:

var result = string.match(/&copy;[\s\d]*(?:<\/.+?>[^>]*>)?([^<]*)/) 
+0

धन्यवाद, मुझे लगता है कि यह काम करता है, लेकिन मैंने एक पृष्ठ में एन्कोडिंग "©" और उस तत्व को पार्स करने का निर्णय लिया। हालांकि, अब मुझे इसके साथ परेशानी हो रही है: http://stackoverflow.com/questions/8282250/jquery-contains-returns-nothing-for-html-encoding – tarayani

+0

भी, क्या आप मेरे लिए अपने रेगेक्स को तोड़ने पर ध्यान देंगे? मैं वास्तव में इसे समझ में नहीं आता। और मैं जावास्क्रिप्ट में इसका उपयोग कैसे करूं? – tarayani

+0

कृपया मेरा अपडेट देखें। – morja

संबंधित मुद्दे