【发布时间】:2021-11-01 17:38:36
【问题描述】:
我想检查字符串是否包含html:
const containsHTML = (str) => /<[a-z][\s\S]*>/i.test(str);
console.log(containsHTML('<br>s')) // expect false
在我的情况下,我希望false,因为s 没有用 HTML 标签包裹。如何修复代码?
【问题讨论】:
-
你的 reg exp 匹配 br 标签并说没问题。没有说明整行需要匹配。
-
HTML 支持纯文本节点...不明白为什么你认为
s在<br>之后是不允许的? -
@epascarello,那么如何避免字符串未包含在 html 中的情况,您能帮忙吗?在上述情况下,我需要弄错
-
取决于它的用途。如果您要确保该人在执行
myContainer.innerHTML = stringFromUser之类的操作之前没有添加 html,那么大多数浏览器无论如何都会添加缺少的结束标签,因此只需一个开始标签就足以“获取 html”。
标签: javascript