validation字符串是否是有效的HTML标记名称
如何确定字符串是否是有效的HTML标记?
例如:a,或h1,div或span,…是有效的HTML标记名。 但ar,或abc,或div2,…是invaild。
var Str = 'strongg'; if( IsValid(Str) ) { // do something }
谢谢。
PS我认为,这不是一个愚蠢的问题,我在这里找到了一个很好的解决方案(见下文)。 但我不知道为什么这个post有“-3”? 想知道!
HTML5引入了HTMLUnknownElement接口 ,该接口必须用于未由标准HTML规范定义的元素。
使用document.createElement
,如果元素不是规范的有效标记,则它将是HTMLUnknownElement类型的对象。 由于使用.toString
将返回[object type]
,您可以创建该元素并测试该类型:
function isValid(input) { return document.createElement(input).toString() != "[object HTMLUnknownElement]"; } console.log( isValid("tr") ); console.log( isValid("a") ); console.log( isValid("trs") ); console.log( isValid("strong") ); console.log( isValid("strongg") );
获取有效HTML标记列表(或任何您想要与之比较的内容)并简单地执行以下操作:
function IsValid(s) { var tags = ['a', 'p', 'etc...']; return tags.indexOf(s) != -1; }
您必须获取并使用自己的HTML标签数组来检查这一点 – 我个人会使用W3C规范而不是w3schools。
然后,你想在数组上使用indexOf并检查它是否不是-1,如下所示:
var isValid = function (tagCandidate) { return (validHtmlTags.indexOf(tagCandidate) > -1); };