我想檢查字串中的第一項是否包含在 HYML 標簽中。我可以有以下情況:
"nothtml <p>"// 期望為假"<p> "//期望為真" <p> "//期望為真"<span>text "//expect true
在所有情況下,我都需要獲得預期值。
const s = '<p>test <p>';
console.log(s.split('<'))
console.log(/<\/?[a-z][\s\S]*>/i.test(s[0]));
根據上述想法,我想對字串進行 split() 并獲取第一個元素,但是當第一項可能不僅<p>, but also <span>, <div>,是您如何注意到 html 標簽的長度可能不同時,我無法管理所有情況. 基本上我需要找到一個解決方案來拆分包裝在標簽中的元素<element>。怎么做?
uj5u.com熱心網友回復:
您可以使用正則運算式來測驗您的字串。
請參閱下面的正則運算式,它會檢查它是否以 HTML 標記元素開頭,并忽略標記前的任何空格
/^\s*(\<\w \>[\s\S]*\<\/\w \>)/.test("nothtml <p>") // return false
如果你想獲得元素
/^\s*(\<\w \>[\s\S]*\<\/\w \>)/.exec(" <element>dsa</element>")[1]
隨時根據您的需要更新正則運算式,互聯網上有很多關于如何使用正則運算式驗證 HTML 字串的示例。
uj5u.com熱心網友回復:
這是我在評論中建議的方法,即將文本決議為 HTML 并檢查第一個節點。此示例假定瀏覽器環境,但也有可用于 Node.js 的 HTML 決議器。它還假設輸入可以被決議為 HTML。
function isWrapped(text) {
const container = document.createElement('div');
container.innerHTML = text;
return container.childNodes[0].nodeType === Node.ELEMENT_NODE;
}
console.log(isWrapped('foo <p>test</p>'));
console.log(isWrapped('<p>test</p>'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/347643.html
標籤:javascript 正则表达式
