答案
不,jSHint 不支持在字符串中禁止任意字符串内容或 HTML 标记。它目前也不支持自定义规则,尽管作者已经讨论过将来添加公共 api。
我对 WHY 的猜测(因为我不是内部人员)
您提出的解决方案(在任何情况下都不允许任何 HTML 标记)将不允许各种高度有效的用例,无论您对在 js 中创建 HTML 有什么看法。我知道这是您的团队想要做的,但是这样一个生硬的规则不会具有其余 jsHints 规则的普遍适用性。他们的重点是执行风格规则。由于您不允许字符串中的所有 HTML 标记,这实际上更像是一种内容验证,而不是一种样式验证。它将消除以下与 DOM 注入/关注点分离无关的内容示例。
例如:
var example="I'm writing a report on <div> tags and css";
或者
var htmlStrippedText = text.replace("<div>","");
我的建议
当然,缺乏广泛的适用性并不是你不这样做的理由。如果您真的想过滤这样的内容,请使用命令行脚本使用正则表达式进行搜索。由于您只想查看是否存在 HTML,而不是其是否有效,因此您可以只搜索表单中的内容,<[div|span|body|html...
并且document.createElement
应该没问题(尽管如果您想在其中允许它,您可能必须更有创意注释)。只是不要使用 nodejs 来运行带有 JS 的脚本,否则它将无法验证自身。:)
当然,这一切都不会阻止坚定的开发人员:
var topSecretDOMObject,topSecretFunction,topSecretArgument;
topSecretFunction = "create"+"Element";
topSecretArgument = "d" + "i" + "v";
topSecretDOMObject = document[topSecretFunction](topSecretArgument);