javascript - 检查字符串是 HTML 代码还是随机字符
问题描述
我的代码中的一个函数返回 2 种字符串,即 HTML 代码或随机字符。
我需要一个正则表达式来检查输出是 HTML 代码还是随机字符。
我的代码:
html = [
`ler"><o/d?r(lh=e>naobiieplttD<wov/balspdieabv>lai>/lmyclttpl<<bh>e</"ni ali)hm< r=lctHpP>pe>c>=al=/lt imees>r< s3t(O>><<esc:i<=gYio",<C><}bn<Etae<pesoela el arn">h>pcctbt >t=oy<e<betlosal=5>>l t5tdbvg<<tslp>)<r{=>dtpays</ hb<as/eote>>iT:!lphp/r`, //false
`ldbv!=ttlt>(<h>h>p(=?> < tmpr><o)ii5rs<v<y<=a=cceiallpcteP l<l>a<tschrl/pl<nsleh==lib<l"<>e />o<elpcwYettasst/<>dt,c>/5aee<r/ep= Hmioyaylmi"betn>>rb3a>tlevesE{T>spnseo:b/ <C ooar>>=</as}/lll>>d>tho<g"it)O"ndlo tieppa a <:hiebt<<eDr<la>ptpi>bgebb`, //false
`<div class="tool"><span>hello</span></div>`, //true
"<br>", //true
"<input />", //true
"<p>hi</p>", //true
"hello<br>hi" //true
]
html.forEach(str => {
isHtml = /regex to check/i.test(str)
console.log(isHtml)
})
解决方案
我们无法确定代码是否为 HTML 代码,因为每个字符串都是 HTML。说真的,即使它的格式很差或无效,它仍然是 HTML。但一种解决方法是我们可以验证或检测 HTML 标签的存在。验证 HTML 标签的正则表达式是
regex = “<(“[^”]*”|'[^’]*’|[^'”>])*>”;
请注意,有效的 HTML 标签必须满足以下条件:
- 它应该以开始标记 (<) 开头。
- 它后面应该跟一个双引号字符串或单引号字符串。
- 它不应允许一个双引号字符串、一个单引号字符串或一个结束标记 (>),而无需包含单引号或双引号。
- 它应该以结束标记 (>) 结束。
或者,您可以通过安装来花哨(投入更多精力)
$ npm install is-html
使用比较简单
const isHtml = require('is-html');
isHtml('<p>I am HTML</p>'); //return true
isHtml('<!doctype><html><body><h1>I ❤ unicorns</h1></body></html>');
//return true
isHtml('<cake>I am XML</cake>');
//return false
希望这可以帮助!快乐编码!
推荐阅读
- c - 如何格式化输出文本,使不同长度的可变字符串跨多行排列?
- google-apps-script - 表格脚本根据单元格值添加行
- django - __str__ 返回非字符串(类型 takimlar)
- webgl - 为什么WebGL扩展的webidl规范有[NoInterfaceObject]扩展属性
- snmp - 以 Oid 列表作为输入的 Getbulk 操作
- c++ - GDB 漂亮的打印机子类信息
- javascript - 如何使用 javascript 访问 HTML 元素的数据属性
- .htaccess - 有人可以用简单的英语解释这个重写吗
- django - Django 模型组织:不同杂货店的食品位置
- r - 在 R 中为 networkD3 包创建列表时遇到问题