JS искать строку или тег html внутри строки, даже если искомый термин не объединен - PullRequest
0 голосов
/ 12 июля 2020

У меня есть редактор кода на моем сайте, и после того, как пользователь запустит код, я хочу проверить правильность кода.

Например, если пользователь пишет следующий код:

<p>Some text</p>

Я хочу проверить, содержит ли код тег <p>.

Что я пробовал:

if(language == "HTML"){
    if (html_code.includes(expected)) {
        alert('right!');
    }
    else {
       alert("wrong");
    }
} 

Но это работает, только если пользователь ничего не вводит между <p> тег.

Итак, как я могу узнать, есть ли в коде определенные теги?

Ответы [ 3 ]

0 голосов
/ 12 июля 2020

попробуйте:

var myHtml = 'Aenean lacinia bibendum <a href="/life">life</a> sed consectetur. <a href="/work">Work</a> quis risus eget urna mollis ornare <a href="/about">about</a> leo.';

var result = myHtml.search(/<\s*a[^>]*>(.*?)<\s*\/\s*a>/g);
if (result >-1) {
    alert('right!');
} else {
     alert("wrong");
}

вы можете заменить «a» на другое имя тега, например «p»

0 голосов
/ 12 июля 2020

Используйте DOMParser , чтобы преобразовать необработанную строку HTML в объект Document , который похож на дерево DOM, которое обычно формируется браузером при анализе кода HTML

function isElementPresent(htmlContent, tag) {
  var tagFound = false;

  var parser = new DOMParser();
  var parsedHtml = parser.parseFromString(htmlContent, 'text/html'); //mimeType of html is text/html
  var listEls = parsedHtml.all

  //all property is [HTMLCollection] holding all the elements (nested or otherwise) that are in the DOM tree

  for (var i = 0; i < listEls.length; i++) {
    if (listEls[i].tagName.toLowerCase() == tag) {
      tagFound = true;
    }
  }
  return tagFound;
}


htmlContent = `<div>

            <p><b>Demo</b></p>
            <div><h2>Hello</h2></div>

          </div>`;

alert( isElementPresent(htmlContent, 'p')     ) //true
alert( isElementPresent(htmlContent, 'audio') ) //false
0 голосов
/ 12 июля 2020
var x = document.getElementById(“myId”).value;
if (x.includes(“html”) && x.includes(“ ”) == true) {
    alert(“html tag added”)
} else {
    alert(“that tag does not exist”)
}
...