[html]<div class="zapiss"><div class="zapis">
<div class="zapish"><kaka><i class="fa-solid fa-poo" style="color:#fff;"></i></kaka><t>кринж принятие</t></div>
<tx>чтобы пройти последние круги ада, необходимо заполнить организационные моментики, для вашего удобства решили запихнуть всё в одну тему, после того, как всё будет заполнено, можно расслабить булочки, закурить бамбук и ждать принятия. ах и да, не забудьте про оформление профиля, которое, будет меняться раз в месяц, вместе с дизайном, <b>при выборе оформления, необходимо указать номер</b>: <br><br><center><img src="https://i.imgur.com/B0BFQU0.png" style="width: 35%" title="1"> <img src="https://i.imgur.com/9kcXvfI.png" style="width: 35%" title="2"></center></tx></div></div>
</div>
[/html]
отметиться в списках внешностей:
личное звание:
подсказка #1
<i> текст </i> — курсив
<b> текст </b> — жирный
<s> текст </s> — зачеркнуть
<u> текст </u> — подчеркнуть
<br> — для переноса текста на новую строку
<big> текст </big> — делает шрифт больше
<small> текст </small> — делает шрифт меньше
<a href="ссылка на профиль"> текст </a> — ссылка на вашего краша
<div style='color:#цвет!important;'> текст </div> — изменить цвет текста
проверьте свое лз на корректность и закрытые теги ♥
[html]<div class="rank_validator" style=" padding: 20px;
margin: 20px 0;
scale: 90%;">
<h3 style="color: #2d2d2d;
font-size: 12px; margin-top: 0;">🥸 Проверка личного звания</h3>
<textarea id="rankCode"
placeholder="тут вставьте лз"
style="width: 100%; height: 100px; margin: 10px 0; padding: 10px;"></textarea>
<button onclick="validateRank()"
style=" background: var(--ssilki);
border-radius: 9px;
color: white;
border: none;
padding: 7px 15px;
cursor: pointer;">
Проверить
</button>
<div id="result" style="margin-top: 15px; font-weight: bold;"></div>
</div>
<script>
function validateRank() {
const code = document.getElementById('rankCode').value.trim();
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = '';
// Новые проверки
const errors = [];
// 1. Проверка на минимальную структуру
if (!/<[a-z][\s\S]*>/i.test(code)) {
errors.push('Это не HTML-код. Личное звание должно содержать HTML-разметку');
}
// 2. Проверка тегов (оптимизированный код)
const tagRegex = /<\/?([\w-]+)(\s+[^>]*?)?\/?>/gi;
const voidTags = new Set(['br','link','img','meta','input','hr','area','base','col','command','embed','keygen','param','source','track','wbr']);
const stack = [];
let match;
while ((match = tagRegex.exec(code)) !== null) {
const fullTag = match[0];
const tagName = match[1].toLowerCase();
const isClosing = fullTag.startsWith('</');
const isSelfClosing = fullTag.endsWith('/>') || voidTags.has(tagName);
if (isClosing) {
if (stack.length === 0 || stack.pop() !== tagName) {
errors.push(`Непарный закрывающий тег </${tagName}>`);
}
} else if (!isSelfClosing) {
stack.push(tagName);
}
}
if (stack.length > 0) {
errors.push(`Не закрыты теги: ${stack.join(', ')}`);
}
// 3. Проверка кавычек (исправленный паттерн)
const quoteMismatch = code.split(/"/g).length % 2 !== 1 || code.split(/'/g).length % 2 !== 1;
if (quoteMismatch) {
errors.push('Непарные кавычки в атрибутах');
}
// 4. Запрещённые символы
const invalidChars = /<(?![a-z\/!])|(?<![\w\/])>/gi;
if (invalidChars.test(code.replace(/<[^>]*>/g, ''))) {
errors.push('Некорректное использование символов <> вне тегов');
}
// 5. Опасные теги
if (/<script|<iframe|<style/gi.test(code)) {
errors.push('Обнаружены запрещённые теги (script, iframe, style)');
}
// Вывод результатов
if (errors.length > 0) {
resultDiv.style.color = '#f44336';
resultDiv.innerHTML = '❌ Ошибки:<br>' + errors.join('<br>❌ ');
} else {
resultDiv.style.color = '#4CAF50';
resultDiv.innerHTML = '✅ Всё в порядке! Код корректен.';
}
}
</script>[/html]