2011-10-30 59 views
5

Tôi muốn tìm kiếm © trong tài liệu HTML và về cơ bản nhận được thực thể bản quyền được quy cho.chọn phần tử văn bản HTML với regex?

Dòng quyền tác giả xuất hiện một vài cách khác nhau:

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

hoặc

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

hoặc

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

Tôi muốn bỏ qua ngày và thẻ can thiệp và chỉ nhận được "Công ty Thời báo New York" hoặc "Counterpunch".

Tôi đã không thể tìm thấy nhiều về việc sử dụng regex với JavaScript hoặc JQuery, mặc dù tôi có ấn tượng rằng nó có thể dẫn đến đau đầu lớn. Nếu có cách tiếp cận tốt hơn, hãy cho tôi biết.

+0

Không sử dụng regex, thay vì sử dụng cây DOM để tìm thấy những gì bạn đang tìm kiếm. Một số liên kết: http://www.howtocreate.co.uk/tutorials/javascript/dombasics – FailedDev

+0

Thông thường, phản hồi bạn nhận được là - vui lòng không sử dụng regex để phân tích cú pháp JS. Sử dụng trình phân tích cú pháp JS. Câu hỏi là - bạn có thể? – ZenMaster

+0

@FailedDev gần như đã tạo ra nó ... – ZenMaster

Trả lời

2

Để có giải pháp mạnh mẽ, có thể bạn sẽ cần kết hợp điều hướng DOM và một số phỏng đoán. Ví dụ của bạn có thể giải quyết được với regex, nhưng có rất nhiều trường hợp khác có thể ...

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

hoạt động cho ba mẫu của bạn. Nhưng CHỈ cho họ và các trường hợp tương tự.

Xem trên rubular

Giải thích:

&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 

Xem this câu trả lời về cách sử dụng trong javascript với jquery. Về cơ bản, bạn có thể sử dụng các trận đấu (/ regex /) chức năng:

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

cảm ơn, tôi thấy rằng nó hoạt động, nhưng tôi quyết định tìm "©" mã hóa trong một trang và phân tích phần tử đó. Tuy nhiên, bây giờ tôi đang gặp rắc rối với điều đó: http://stackoverflow.com/questions/8282250/jquery-contains-returns-nothing-for-html-encoding – tarayani

+0

cũng có, bạn có phiền phá vỡ regex của bạn cho tôi? Tôi không hiểu lắm. và làm thế nào tôi sẽ sử dụng điều này trong javascript? – tarayani

+0

Vui lòng xem cập nhật của tôi. – morja

Các vấn đề liên quan