Hướng dẫn how will you check an html is valid or not and code it also? - Làm thế nào bạn sẽ kiểm tra một html là hợp lệ hay không và mã nó cũng?

Không có giải pháp nào được trình bày cho đến nay là làm tốt công việc trả lời câu hỏi ban đầu, đặc biệt là khi nói đến

Tôi không muốn xác nhận thất bại vì một cái gì đó không phải là tiêu chuẩn 100% (nhưng dù sao cũng sẽ hoạt động).

TLDR >> Kiểm tra jsfiddle

Vì vậy, tôi đã sử dụng đầu vào của các câu trả lời và nhận xét về chủ đề này và tạo ra một phương thức làm như sau:

  • Kiểm tra thẻ chuỗi HTML bằng thẻ nếu hợp lệ
  • Trys để hiển thị chuỗi HTML
  • so sánh về mặt lý thuyết để được tạo số thẻ
  • Nếu đã được kiểm tra 'nghiêm ngặt',
    và bình thường thuộc tính trống ="" không bị bỏ qua
  • So sánh RenderHTML được hiển thị với chuỗi HTML đã cho (trong khi bỏ qua khoảng trắng và trích dẫn)

Trả lại

  • Đúng nếu kết xuất HTML giống như chuỗi HTML đã cho
  • sai nếu một trong các kiểm tra không thành công
  • Chuỗi HTML được chuẩn hóa nếu HTML được kết xuất có vẻ hợp lệ nhưng không bằng chuỗi HTML đã cho

Phương tiện được chuẩn hóa, khi kết xuất, trình duyệt bỏ qua hoặc sửa chữa đôi khi các phần cụ thể của đầu vào (như thêm các thẻ đóng thiếu cho

và chuyển đổi các phần khác (như trích dẫn đơn thành hoặc mã hóa amperstands). "Bình thường hóa" cho phép gắn cờ nội dung cho người dùng vì "điều này sẽ không được hiển thị như bạn có thể mong đợi".

Hầu hết các lần chuẩn hóa đều mang lại một phiên bản chỉ thay đổi một chút của chuỗi HTML gốc - Tuy nhiên, đôi khi kết quả khá khác nhau. Vì vậy, điều này nên được sử dụng, ví dụ: Để gắn cờ đầu vào người dùng để xem xét thêm trước khi lưu nó vào DB hoặc kết xuất nó một cách mù quáng. (Xem JSFiddle để biết ví dụ về chuẩn hóa)

Các kiểm tra sẽ xem xét các ngoại lệ sau

  • Bỏ qua việc bình thường hóa các trích dẫn đơn lẻ để trích dẫn gấp đôi
  • image và các thẻ khác có thuộc tính src được 'giải giáp' trong quá trình kết xuất
  • (Nếu không nghiêm ngặt) Bỏ qua
    >>
    Chuyển đổi
  • (Nếu không nghiêm ngặt) Bỏ qua việc chuẩn hóa các thuộc tính trống (

    >>

  • Mã hóa các ampersands không được mã hóa ban đầu khi đọc
    "missing attribute quotes" // FAIL
    "hello"                                        // PASS
    'hello'                       // PASS
    'hello',                        // PASS
    "hello",                      // PASS
    '
    • hell
    • hell
    ', // PASS '
    • hell
    • hell
    ', // PASS '
    ampersands in attributes
    ' // PASS
    1, ví dụ: trong các giá trị thuộc tính

.

function simpleValidateHtmlStr(htmlStr, strictBoolean) {
  if (typeof htmlStr !== "string")
    return false;

  var validateHtmlTag = new RegExp("<[a-z]+(\s+|\"[^\"]*\"\s?|'[^']*'\s?|[^'\">])*>", "igm"),
    sdom = document.createElement('div'),
    noSrcNoAmpHtmlStr = htmlStr
      .replace(/ src=/, " svhs___src=") // disarm src attributes
      .replace(/&/igm, "#svhs#amp##"), // 'save' encoded ampersands
    noSrcNoAmpIgnoreScriptContentHtmlStr = noSrcNoAmpHtmlStr
      .replace(/\n\r?/igm, "#svhs#nl##") // temporarily remove line breaks
      .replace(/(]*>)(.*?)(<\/script>)/igm, "$1$3") // ignore script contents
      .replace(/#svhs#nl##/igm, "\n\r"),  // re-add line breaks
    htmlTags = noSrcNoAmpIgnoreScriptContentHtmlStr.match(/<[a-z]+[^>]*>/igm), // get all start-tags
    htmlTagsCount = htmlTags ? htmlTags.length : 0,
    tagsAreValid, resHtmlStr;


  if(!strictBoolean){
    // ignore 
conversions noSrcNoAmpHtmlStr = noSrcNoAmpHtmlStr.replace(//, "
") } if (htmlTagsCount) { tagsAreValid = htmlTags.reduce(function(isValid, tagStr) { return isValid && tagStr.match(validateHtmlTag); }, true); if (!tagsAreValid) { return false; } } try { sdom.innerHTML = noSrcNoAmpHtmlStr; } catch (err) { return false; } // compare rendered tag-count with expected tag-count if (sdom.querySelectorAll("*").length !== htmlTagsCount) { return false; } resHtmlStr = sdom.innerHTML.replace(/&/igm, "&"); // undo '&' encoding if(!strictBoolean){ // ignore empty attribute normalizations resHtmlStr = resHtmlStr.replace(/=""/, "") } // compare html strings while ignoring case, quote-changes, trailing spaces var simpleIn = noSrcNoAmpHtmlStr.replace(/["']/igm, "").replace(/\s+/igm, " ").toLowerCase().trim(), simpleOut = resHtmlStr.replace(/["']/igm, "").replace(/\s+/igm, " ").toLowerCase().trim(); if (simpleIn === simpleOut) return true; return resHtmlStr.replace(/ svhs___src=/igm, " src=").replace(/#svhs#amp##/, "&"); }

Tại đây bạn có thể tìm thấy nó trong một jsfiddle https://jsfiddle.net/abernh/twgj8bev/, cùng với các loại thử nghiệm khác nhau, bao gồm cả

"missing attribute quotes" // FAIL
"hello"                                        // PASS
'hello'                       // PASS
'hello',                        // PASS
"hello",                      // PASS
'
  • hell
  • hell
', // PASS '
  • hell
  • hell
', // PASS '
ampersands in attributes
' // PASS

.

Làm thế nào bạn sẽ kiểm tra HTML có hợp lệ hay không?

Kiểm tra thẻ chuỗi HTML bằng thẻ nếu hợp lệ. Trys để hiển thị chuỗi HTML. so sánh về mặt lý thuyết để được tạo số thẻ với số lượng thẻ HTML DOM thực sự được hiển thị. Nếu được kiểm tra 'nghiêm ngặt' và bình thường thuộc tính trống = "" không bị bỏ qua.. trys to render html string. compares theoretically to be created tag count with actually rendered html dom tag count. if checked 'strict',
and empty attribute normalizations ="" are not ignored.

Làm thế nào để bạn xác minh trong HTML?

Trình xác thực W3C HTML xác thực bởi URI: Cho phép bạn nhập địa chỉ của một trang đã có trên Internet để xác thực.Xác thực bằng tệp tải lên: Cho phép bạn tải lên tệp HTML để xác thực.Xác thực bằng đầu vào trực tiếp: Cho phép bạn dán nội dung của tệp HTML vào cửa sổ để xác thực.Validate by URI: Allows you to enter the address of a page already on the internet for validation. Validate by File Upload: Allows you to upload an HTML file for validation. Validate by Direct Input: Allows you to paste the contents of an HTML file into the window for validation.

Công cụ nào được sử dụng để kiểm tra tính hợp lệ của HTML?

Xác thực đánh dấu W3C là một nguồn mở và dịch vụ miễn phí do W3C cung cấp để kiểm tra các xác nhận của các tài liệu.Nó là thành thạo trong việc kiểm tra HTML, XHTML, MATHML, SMIL, SVG, SGML, XML DTD xác nhận cho các ứng dụng.

Cách hiệu quả và chính xác để tìm phần tử HTML hợp lệ là gì?

Xác thực HTML Chiến lược tốt nhất là bắt đầu bằng cách chạy trang HTML của bạn thông qua dịch vụ xác thực đánh dấu - được tạo và duy trì bởi W3C, tổ chức chăm sóc các thông số kỹ thuật xác định HTML, CSS và các công nghệ web khác.running your HTML page through the Markup Validation Service — created and maintained by the W3C, the organization that looks after the specifications that define HTML, CSS, and other web technologies.