如何確定字符串是否爲有效的HTML標記?驗證字符串是否爲有效的HTML標記名稱
例如:a,或h1,div或span,...是有效的HTML標記名。 但是ar,或abc或div2,...都是invaild。
var Str = 'strongg';
if(IsValid(Str)) {
// do something
}
謝謝。
PS 我想,這不是一個愚蠢的問題,我在這裏找到了一個很好的解決方案(見下文)。但我不知道爲什麼這個線程有「-3」?想知道!
如何確定字符串是否爲有效的HTML標記?驗證字符串是否爲有效的HTML標記名稱
例如:a,或h1,div或span,...是有效的HTML標記名。 但是ar,或abc或div2,...都是invaild。
var Str = 'strongg';
if(IsValid(Str)) {
// do something
}
謝謝。
PS 我想,這不是一個愚蠢的問題,我在這裏找到了一個很好的解決方案(見下文)。但我不知道爲什麼這個線程有「-3」?想知道!
得到有效的HTML標籤的列表(或任何你想要的比較),只是這樣做:
function IsValid(s) {
var tags = ['a', 'p', 'etc...'];
return tags.indexOf(s) != -1;
}
感謝您的回答。 – user3417601 2014-10-09 20:04:15
您將獲得和使用自己的HTML標籤的陣列來檢查這一點 - 我會親自去W3C spec而不是w3schools之一。
然後,你要使用的陣列上的indexOf和檢查,如果它不是-1,這樣的事情:
var isValid = function (tagCandidate) { return (validHtmlTags.indexOf(tagCandidate) > -1); };
HTML5引入了必須用於不受定義的元素的HTMLUnknownElement interface標準的HTML規範。
使用document.createElement
時,如果元素不是按規範定義的有效標記,則它將是HTMLUnknownElement類型的對象。由於使用.toString
將返回[object type]
,您可以創建元素和測試該類型:
function isValid(input) {
return document.createElement(input).toString() != "[object HTMLUnknownElement]";
}
alert(isValid("tr"));
alert(isValid("a"));
alert(isValid("trs"));
alert(isValid("strong"));
alert(isValid("strongg"));
然而,這不是很多舊的瀏覽器工作。
感謝您的回答。我在我的項目中已經使用'createElement',因此它是我函數的一個直覺解決方案。 – user3417601 2014-10-09 20:26:58
+1偉大的做法@尼斯。 – PeterKA 2014-10-09 21:11:17
創建一個有效標籤名稱的數組,檢查該數組對應的字符串 – tymeJV 2014-10-09 19:43:37
您可以獲取有效標籤名稱列表[here](http://www.w3schools.com/tags/default.asp)。爲什麼不將它們存儲在'IsValid'的數組中,並將每個元素的「Str」進行比較? – 2014-10-09 19:43:46
我知道這個解決方案。但是有沒有更好的方法? – user3417601 2014-10-09 19:47:09