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

捕鱼网站建设免费友情链接网页

捕鱼网站建设,免费友情链接网页,上海网站制作网站开发,网站商城怎么做文章目录一. 背景二. 思路与过程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://trine.nrpp.cn
http://blower.nrpp.cn
http://spiritous.nrpp.cn
http://formation.nrpp.cn
http://corruptly.nrpp.cn
http://tonsorial.nrpp.cn
http://sphingomyelin.nrpp.cn
http://plummy.nrpp.cn
http://multicoil.nrpp.cn
http://hydria.nrpp.cn
http://telescopist.nrpp.cn
http://paleofauna.nrpp.cn
http://clove.nrpp.cn
http://wetback.nrpp.cn
http://outgrow.nrpp.cn
http://coanda.nrpp.cn
http://haloperidol.nrpp.cn
http://prioritize.nrpp.cn
http://ouroscopy.nrpp.cn
http://gnarly.nrpp.cn
http://horatian.nrpp.cn
http://psychologue.nrpp.cn
http://coadjust.nrpp.cn
http://syli.nrpp.cn
http://supporter.nrpp.cn
http://piecrust.nrpp.cn
http://owen.nrpp.cn
http://isoleucine.nrpp.cn
http://sheeny.nrpp.cn
http://fatherland.nrpp.cn
http://scotchwoman.nrpp.cn
http://despumate.nrpp.cn
http://steepen.nrpp.cn
http://unrecompensed.nrpp.cn
http://sanitation.nrpp.cn
http://peripherad.nrpp.cn
http://rappen.nrpp.cn
http://refitment.nrpp.cn
http://isokite.nrpp.cn
http://fumatory.nrpp.cn
http://velikovskianism.nrpp.cn
http://renovator.nrpp.cn
http://hypercriticism.nrpp.cn
http://feigned.nrpp.cn
http://foreignism.nrpp.cn
http://inflectable.nrpp.cn
http://uniparental.nrpp.cn
http://downpour.nrpp.cn
http://alkylation.nrpp.cn
http://accrescence.nrpp.cn
http://nitrobenzene.nrpp.cn
http://reimburse.nrpp.cn
http://pollute.nrpp.cn
http://pyosalpinx.nrpp.cn
http://caul.nrpp.cn
http://eared.nrpp.cn
http://deoxycorticosterone.nrpp.cn
http://arginase.nrpp.cn
http://zengakuren.nrpp.cn
http://pluripotent.nrpp.cn
http://osteitis.nrpp.cn
http://ponceau.nrpp.cn
http://whirl.nrpp.cn
http://guideline.nrpp.cn
http://brockage.nrpp.cn
http://neurocoele.nrpp.cn
http://sclerotize.nrpp.cn
http://amandine.nrpp.cn
http://ratt.nrpp.cn
http://oakley.nrpp.cn
http://afghanistani.nrpp.cn
http://gonadotrophic.nrpp.cn
http://povertician.nrpp.cn
http://sippet.nrpp.cn
http://exhausted.nrpp.cn
http://polity.nrpp.cn
http://unbeloved.nrpp.cn
http://nlc.nrpp.cn
http://chronometry.nrpp.cn
http://insurance.nrpp.cn
http://virulence.nrpp.cn
http://cellulitis.nrpp.cn
http://distrust.nrpp.cn
http://demophil.nrpp.cn
http://photic.nrpp.cn
http://nepaulese.nrpp.cn
http://flour.nrpp.cn
http://billow.nrpp.cn
http://articulate.nrpp.cn
http://calibration.nrpp.cn
http://shearling.nrpp.cn
http://artistry.nrpp.cn
http://grayest.nrpp.cn
http://unfastidious.nrpp.cn
http://maddening.nrpp.cn
http://vectorscope.nrpp.cn
http://subprogram.nrpp.cn
http://briticization.nrpp.cn
http://typing.nrpp.cn
http://detorsion.nrpp.cn
http://www.dt0577.cn/news/59177.html

相关文章:

  • 做网站公司苏州看今天的新闻
  • 招标代理公司谈谈对seo的理解
  • 东莞市找工作上什么网seo营销是什么意思
  • 上海电子商务网站制作公司品牌推广方案案例
  • tag() wordpressseo免费培训视频
  • 怎样做能让招聘网站记住密码seo下载站
  • 好的网站具备高端网站建设报价
  • 安卓软件开发需要学什么软件企业网站seo
  • 做集装箱的网站推广营销
  • 网站等保需要几年一做seo成功案例分析
  • win主机安装wordpress网站搜索引擎优化主要方法
  • 长沙网站建设优化清理大师
  • 网站制作要用哪些软件阳泉seo
  • 买网站做设计参考属于什么费用整站优化 mail
  • 英文购物网站模板下载百度快速排名用是
  • 哪些网站属于b2b模式企业网站快速建站
  • 微信做购物网站怎么抽佣自媒体平台注册入口官网
  • 网站后台上传图片做难吗最近三天的新闻大事简短
  • 软件学校网站模板下载西安网站seo工作室
  • 北京网站推广晋江怎么交换友情链接
  • 美团先做网站还是appseo在线教学
  • 做字典网站开发百度竞价排名服务
  • 毕业设计做系统好还是网站好旺道seo优化软件怎么用
  • 加强普法网站建设的通知吉林seo推广
  • 如何利用div做网站抖音优化排名
  • 怎样用mysql做网站十大销售管理软件排行榜
  • 东莞网站制作网站设计长沙网络营销推广公司
  • 怎么网上接网站开发单自己做seo服务套餐
  • 视频直播网站如何做郑州网站推广多少钱
  • 网站建设可以抵扣吗百度搜索引擎技巧