最善の方法は、すべての有効な HTML4 要素のリストを用意して、それを確認することです。これにより、100% の確率で「有効な HTML4 要素」の正しい結果が得られます。ここから:
var html4 = ["A","ABBR","ACRONYM","ADDRESS","APPLET","AREA","B","BASE","BASEFONT","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","DD","DEL","DFN","DIR","DIV","DL","DT","EM","FIELDSET","FONT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HR","HTML","I","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","LABEL","LEGEND","LI","LINK","MAP","MENU","META","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","P","PARAM","PRE","Q","S","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUP","TABLE","TBODY","TD","TEXTAREA","TFOOT","TH","THEAD","TITLE","TR","TT","U","UL","VAR"];
var valid = html4.indexOf(name.toUpperCase()) !== -1;
何らかの理由で絶対にそうしたくない場合、または実際には HTML4 を意味するものではなく、IE8 との互換性について心配していない場合は、次のようにすることができます。
var valid = !(document.createElement(name) instanceof HTMLUnknownElement);