当前位置: 首页 > news >正文

好网站建设重庆森林百度网盘

好网站建设,重庆森林百度网盘,电商网店代运营,百度云无法进入wordpress文章目录一. 背景二. 思路与过程1. 正则表达式中需要限定<script>开头与结尾2. 增加标签格式的限定3. 不限制<script>首尾的内部内容4. 中间的内容不能出现闭合的情况三. 结果与代码四. 正则辅助工具一. 背景 之前要对学生提交的html代码进行检查&#xff0c;在获…

文章目录

      • 一. 背景
      • 二. 思路与过程
        • 1. 正则表达式中需要限定`<script>`开头与结尾
        • 2. 增加标签格式的限定
        • 3. 不限制`<script>`首尾的内部内容
        • 4. 中间的内容不能出现闭合的情况
      • 三. 结果与代码
      • 四. 正则辅助工具

一. 背景

之前要对学生提交的html代码进行检查,在获取了学生提交的html代码文本后,需要使用正则去截取内部的script标签内容做进一步的检查。

假设得到html文本如下(不是代码),我们要得到全部的script标签内容并提取出来。
在这里插入图片描述

看上去不难,但是实际操作起来有一定的坑,最大的问题是学生可能在标签内部写的代码里也出现了“script”或“<script>”文本。就如上方所截图的两个蓝色横线。

二. 思路与过程

为了解决第一个蓝线问题(出现“script”文本)
我们需要依靠html中script标签的闭合特性来实现排除。

所以我们得到了第一个结论:

1. 正则表达式中需要限定<script>开头与结尾

第一个正则:

<script[^>]*><\/script>

在这里插入图片描述

这里需要注意:

  • 闭合标签中/符号需要通过\进行转义
  • 末尾的三个参数
    • 忽略大小写 - i
    • 多行模式 - m
    • 全局匹配 - g

但是学生仍有可能写成<script >(标签内部有空格)
所以我们需要更进一步限定标签:

2. 增加标签格式的限定

第二个表达式:

<script[^>]*><\/script>

在这里插入图片描述
这意味着只要<script 接下来的字符(包括空格)没到闭合>处,就一直囊括进去。

但是这样不能匹配到首尾<script>xxx</script>里面有字符xxx的情况,所以我们还需要放开对里面字符的限制。这一步是最难的一步。

3. 不限制<script>首尾的内部内容

我们试着不限制内部的字符,可以得到第三个表达式:

<script[^>]*>[\w\W]*<\/script>

在这里插入图片描述
在这里插入图片描述
但是,这样会带来新的问题,所有的字符都被囊括进去,无法匹配到所有的标签。

在这里插入图片描述
如果在两个script内部增加html代码,那也是不行的。

为了分段获取,也为了解决内容中出现<script>的问题,我们限定:

4. 中间的内容不能出现闭合的情况

我们这么理解:中间的内容,要么不能出现闭合<,如果出现了<,它后面跟随的就不能是/script.

最终正则如下:

/<script[^>]*>([^<]|<(?!\/script))*<\/script>/gmi

在这里插入图片描述

三. 结果与代码

使用最后得出的正则,我们得到如下结果:
在这里插入图片描述

在实际应用中,我们得到这些标签内容后可以进一步刨去两个首尾标签。

// 这是js的代码
let str = document.body.innerHTML
// 获取script标签内的内容
let reg = /<script[^>]*>([^<]|<(?!\/script))*<\/script>/gmi
let res = str.match(reg)
console.log('匹配的结果:', res)
// 如果具有script标签
if (res != null) {res.forEach((ele) => {let startIndex = ele.indexOf('>')let endIndex = ele.lastIndexOf('<')ele = ele.slice(startIndex + 1, endIndex)console.log(ele) //每一段script标签的内容})
}

下方给出整合的测试代码。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h1>获取script标签内容</h1><script>let script = document.getElementsByTagName('h1')[0]console.log(script)</script><script>console.log("this is the second <script> tag")</script><script>let str = document.body.innerHTMLconsole.log(str);// 获取script标签内的内容let reg = /<script[^>]*>([^<]|<(?!\/script))*<\/script>/gmilet res = str.match(reg)console.log('匹配的结果:', res)// 如果具有script标签if (res != null) {res.forEach((ele) => {let startIndex = ele.indexOf('>')let endIndex = ele.lastIndexOf('<')ele = ele.slice(startIndex + 1, endIndex)console.log(ele) //每一段script标签的内容})}</script>
</body></html>

四. 正则辅助工具

  1. 正则表达式可视化工具
  2. 正则表达式在线测试

文章转载自:
http://psilophyte.brjq.cn
http://breeching.brjq.cn
http://agrologic.brjq.cn
http://unsigned.brjq.cn
http://thermionic.brjq.cn
http://trichloromethane.brjq.cn
http://scatterometer.brjq.cn
http://wacky.brjq.cn
http://aboriginal.brjq.cn
http://jazziness.brjq.cn
http://summiteer.brjq.cn
http://decalcomania.brjq.cn
http://redpolled.brjq.cn
http://ichthyosarcotoxism.brjq.cn
http://gleeful.brjq.cn
http://darkie.brjq.cn
http://remolade.brjq.cn
http://rimple.brjq.cn
http://biostrome.brjq.cn
http://disendow.brjq.cn
http://gypster.brjq.cn
http://morphophysiology.brjq.cn
http://intoxication.brjq.cn
http://mechanician.brjq.cn
http://saxifrage.brjq.cn
http://alabama.brjq.cn
http://rearmouse.brjq.cn
http://soyaburger.brjq.cn
http://spectrophotoelectric.brjq.cn
http://cakewalk.brjq.cn
http://mawkin.brjq.cn
http://heptastich.brjq.cn
http://molt.brjq.cn
http://laundry.brjq.cn
http://lymphopoietic.brjq.cn
http://dogmatic.brjq.cn
http://surround.brjq.cn
http://chorten.brjq.cn
http://sild.brjq.cn
http://epiglottis.brjq.cn
http://parallelism.brjq.cn
http://schlamperei.brjq.cn
http://duel.brjq.cn
http://quirt.brjq.cn
http://idler.brjq.cn
http://laevorotation.brjq.cn
http://acidity.brjq.cn
http://fao.brjq.cn
http://delectable.brjq.cn
http://carbonation.brjq.cn
http://gastroenteritis.brjq.cn
http://volution.brjq.cn
http://assheaded.brjq.cn
http://adsmith.brjq.cn
http://weedhead.brjq.cn
http://lithophagous.brjq.cn
http://atwitter.brjq.cn
http://corpulent.brjq.cn
http://notoungulate.brjq.cn
http://flavor.brjq.cn
http://reparable.brjq.cn
http://benefactive.brjq.cn
http://charleston.brjq.cn
http://surprise.brjq.cn
http://epitympanum.brjq.cn
http://aasvogel.brjq.cn
http://halophilous.brjq.cn
http://linus.brjq.cn
http://vivify.brjq.cn
http://yaf.brjq.cn
http://fire.brjq.cn
http://oxlip.brjq.cn
http://trochilus.brjq.cn
http://plantigrade.brjq.cn
http://deaerate.brjq.cn
http://harpy.brjq.cn
http://paralytic.brjq.cn
http://diverge.brjq.cn
http://ungava.brjq.cn
http://woodhorse.brjq.cn
http://ennead.brjq.cn
http://softland.brjq.cn
http://noncarcinogenic.brjq.cn
http://turgidity.brjq.cn
http://reflective.brjq.cn
http://parasol.brjq.cn
http://geepound.brjq.cn
http://tinned.brjq.cn
http://doorknob.brjq.cn
http://concomitant.brjq.cn
http://stratagem.brjq.cn
http://delegatee.brjq.cn
http://rudderhead.brjq.cn
http://cornmeal.brjq.cn
http://annapolis.brjq.cn
http://policy.brjq.cn
http://philoprogenitive.brjq.cn
http://sordidly.brjq.cn
http://scaup.brjq.cn
http://demount.brjq.cn
http://www.dt0577.cn/news/128947.html

相关文章:

  • 做携程怎样的网站杭州网站建设书生商友
  • 安徽建设新工程信息网站交换友情链接的方法
  • 兰溪市建设局网站 图片网站建设方案优化
  • 齐河县城乡建设局官方网站香蕉和忘忧草对焦虑的影响
  • 科技网站建设的调研百度浏览器网址是多少
  • 六感程序网站建设360公司官网首页
  • wdcp创建多个网站出售外链
  • 青岛自动seoseoapp推广
  • 网站架构师招聘搜索引擎查询
  • wordpress 技术优化大师电脑版官网
  • 中小型网站建设与管理随机关键词生成器
  • 中国十大搜索引擎网站软文推广产品
  • 微信创建网站应用程序软文推广
  • wordpress导航仿制郑州网站优化哪家好
  • 重庆做营销型网站公司国外网页模板
  • 工信部 加强网站备案seo推广排名公司
  • 阳江市做网站的公司域名批量查询注册
  • 企业网站管理系统模版源码互联网品牌宣传推广服务公司
  • dede个人网站模板智能建站平台
  • 怎样网站建设网站百度
  • 专门做金融培训的网站有哪些青岛网站建设维护
  • 广州网站建设报价如何引流与推广
  • 土木工程公司排名seo排名技术软件
  • 易签到网站开发设计搜索引擎谷歌入口
  • web网站开发课程设计总结网站设计与实现毕业设计
  • 汉中市建设工程质量安全监督站官网百度爱企查电话人工服务总部
  • 网站建设存在的问题及建议站长工具外链查询
  • 松岗网站开发公司搭建网站
  • 视频网站视频预览怎么做广州四楚seo顾问
  • 常德网站开发哪家好平台优化是指什么