正则表达式 - 查找具有 name 属性但不具有 id 的元素

2024-01-16

这个问题今天就出现在我身上了。我正在从事一个基于 Web (Struts 2) 的项目,其中包含大量 JSP,并且大部分input, select, table and a元素仅通过以下方式定义name属性,无id设置,例如:

<input name="myname" class="myclass" value="" type="text"/>

到目前为止一切都很好,除了不幸的是这些字段有很多 JavaScript 验证,而且据我在离开之前可以阅读代码,其中大多数实际上引用了带有document.getElementById.

这里的问题是,这是一个旧的应用程序(实际上没那么旧),仅与 IE-6 和 IE-7 兼容(我没有搜索网络以了解 IE 实际上似乎如何仅使用name属性,但我想它必须做一些事情)。毫不奇怪,所有其他浏览器都会抱怨和哭泣。

所以,我试图想出一个简单的解决方案:查找定义了的所有 JSPinput, select, table and a元素与name属性但不是id以修复 HTML。

利用我的好朋友http://rubular.com http://rubular.com我想出了以下几点:

/<(?:(input|select|a|table))\s+((?!id).)*>

这将捕获每个引用的元素,而无需id。但我怎么能真正断言只有那些拥有name匹配吗?

哦,还有一个重要的点。元素的定义在一行中,因此很可能不存在以下内容:

<input name="..."
       class="..."/>

尝试这个:

<(?:input|select|a|table)\s+(?=[^>]*\bname\s*=)(?![^>]*\bid\s*=)[^>]*>

解释:

<                           "<"
(?:input|select|a|table)    One of "input", "select", "a", "table"
\s+                         Whitespace
(?=                         Positive lookahead
[^>]*                           Anything up to but excluding ">"
\b                              Word boundary
name                            "name"
\s*                             Possible whitespace
=                               "="
)
(?!                         Negative lookahead
[^>]*                           Anything up to but excluding ">"
\b                              Word boundary
id                              "id"
\s*                             Possible whitespace
=                               "="
)
[^>]*                       Anything up to but excluding ">"
>                           ">"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式 - 查找具有 name 属性但不具有 id 的元素 的相关文章

  • 在所有浏览器的 HTML 页面中嵌入 .wav 文件(无控件)

    我需要在单击按钮时播放一些 wav 文件 我找到了在 IE 中工作的解决方案 但它需要 Firefox 的 QuickTime 插件 还有其他办法吗 h1 test h1 span span
  • 解析西班牙姓氏

    西班牙姓氏由三部分组成 父亲的名字 可选的母亲姓名 可选配偶的父亲姓名 这三个部分中的每一部分都是一个单词 前面可能带有 De Del De La De Los 或 De Las 这些前缀中的每一个都以大写字母开头 并且每个部分可能只有一个
  • Python:删除字符串开头的数字

    我有一些这样的字符串 string1 123 123 This is a string some other numbers string2 1 This is a string some numbers string3 12 3 12 T
  • 如何为 HTML 元素创建鼠标拖动滑块?

    我发现的许多滑块插件要么仅单击以查看下一个图像 要么如果它们确实具有鼠标拖动或触摸拖动功能 则仅允许图像 有谁知道为任何 html 元素编写鼠标拖动滑块的插件或可能的方法 我专门使用 SVG 但将来如果能在 div 元素之间滑动就更好了 H
  • 为什么我的列表项项目符号与浮动元素重叠

    我有一个 XHTML Strict 页面 我在其中将图像浮动在常规文本段落旁边 一切都很顺利 除非使用列表而不是段落 列表的项目符号与浮动图像重叠 更改列表或列表项的边距没有帮助 边距是从页面左侧开始计算的 但浮动会将列表项推到右侧insi
  • 角度 2 通道数组到自定义验证器(模板驱动形式)

    我需要将一个对象数组传递给 a2 自定义验证器 然后我想根据该数组中的记录验证模板驱动表单字段的值 但是我无法检索验证器内的对象 我唯一能看到的是它的名称作为字符串 如有任何帮助 我们将不胜感激
  • 来自 HTML5 的 Phonegap Bonjour/Zeroconf 或 Websocket IP 发现

    我正在尝试实现一个 Phonegap HTML5 应用程序 该应用程序连接到 Websocket 服务器 在嵌入式设备中运行 也有 Bonjour 服务 以在家庭网络内交换数据 我想知道使用 Phonegap 检测服务器 IP 的最佳方法
  • 如何消除 HTML 内容周围的边距?

    以下 HTML 显示正常 div style width 100px height 100px background red div Hello div div
  • Masonry - imagesLoaded - 不是函数

    Masonry and imagesLoaded应加载并正常工作 已经制作了一个类似的网站 并且可以正常运行 我不知道我的问题出在哪里 所以我希望你能看到问题所在 应该是少了点什么 在 Chrome Inspect 中 我收到以下错误 Un
  • 为什么我只得到第一个捕获组?

    https stackoverflow com a 2304626 6607497 https stackoverflow com a 2304626 6607497 and https stackoverflow com a 370042
  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • 响应式图像 - srcset 和尺寸属性 - 如何正确使用两者:基于设备像素比和基于视口的选择一起?

    到目前为止 我经常读到这个问题 并且它也发生在我自己的项目中 这里介绍一下我到目前为止所发现的关于 srcset 和 size 属性的内容 关于如何使用有两种不同的可能性srcset 属性 来源 w3c http w3c github io
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 网站的主体和元素固定在 980px 宽度上,不会缩小

    我试图在 Rails 应用程序顶部启动前端 仅 HTML CSS 页面 但在使用 320px 视口时遇到问题 有些元素不会按比例缩小 我不明白为什么 我已经完成了检查元素 为各种元素提供了max width 100 and or width
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 图像背景不透明度不影响边框

    如何设置背景不透明度而不影响边框线不透明度 我找到的解决方案没有帮助 div class selected img src assets img image product 1 thumbnail jpg alt product 1 thu
  • 如何创建适合屏幕宽度的等宽/高框? [复制]

    这个问题在这里已经有答案了 我正在尝试建立一个网站 其中有很多宽度和高度相等的框 例如 我有一个页面 其中并排有两个相同大小的框 简单的解决方案是将宽度和高度设置为 50vw 这在出现滚动条之前效果很好 我已经用谷歌搜索了几个小时 但无法理
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0

随机推荐

  • MySQL ORDER BY 另一个表中用户的总行数

    假设 我想显示一个用户列表 按他们发送的消息数量排序 我有 2 张桌子 Users and Messages 我有 10 个用户 用户 A 发送了 20 条消息 消息表中有 20 行 SELECT FROM messages WHERE u
  • 在 v-show 显示输入后将焦点设置在输入上

    我有一个简单的表单 使用 v show 在加载页面时隐藏该表单 我想在显示后集中输入 我有一个按钮来调用一个显示表单的方法 并使用以下代码将焦点设置为输入 this newQuestion true Form whit v show new
  • 使用 HTML5 在 iPhone 上播放 Shoutcast 流

    我知道这个问题过去已经被问过 但我最终没有找到答案 所以我得到了一个shoutcast流 编码音频 mpeg 我想为我的iPhone创建一个网络应用程序来收听我的流移动设备 我尝试了几种方法http mydomain com 8000 ht
  • 使用 Greasemonkey(或类似的用户脚本引擎)更快地重定向?

    我正在使用 Greasemonkey 将某些 URL 重定向到另一个 URL 但我想在要重定向的 URL 加载之前进行重定向 目前我正在使用这个简单的脚本 UserScript name Redirect Google descriptio
  • 在 Yii 中更新和删除相关模型(关系表)

    UPDATED 我有两个相关的模型 即候选人和资格 他们之间是一对一的关系 我正在使用 CActiveForm 并希望对关系数据执行 CRUD 操作 我能够插入数据 但更新和删除时遇到问题 该函数正在显示 id 但这是页面上唯一显示的内容
  • 切换后台任务时 SIGPIPE 崩溃

    将我的应用程序发送到后台 加载新应用程序 将设备切换到睡眠模式 唤醒设备 关闭新应用程序 然后从后台任务打开我的应用程序时 我遇到了奇怪的崩溃 将出现黑屏 我无法使用主页按钮退出此黑屏 并且在调试器中我会显示以下消息 程序接收信号 SIGP
  • 在 html 中使用包含空格的变量设置“value”属性

    我对 HTML JS 很陌生 所以如果这是一个基本问题 我深表歉意 我尝试在网上查找此问题 但无法找到解决方案 我正在使用 JS 代码来创建 HTML 我正在尝试使用包含空格的 var 设置 值 属性 带空格的字符串 当检查 chrome
  • 在 NPM 上发布要包含在 README.md 中的图像

    In 这个项目 https github com fireflysemantics validator the README md显示logo pnglogo png徽标位于顶部README md file 我们希望在 NPM 上显示相同的
  • QLPreviewController - 设置previewItemTitle

    我不知道如何设置 QLPreviewController 类的 PreviewItemTitle 属性 这似乎有点奇怪 因为此类的 iPhone 开发人员文档说该属性是 property readonly 这意味着我无法设置它 有任何想法吗
  • 是否可以在 Android 应用程序中使用 Neo4j 数据库?

    如果我在 Android 应用程序中使用 Neo4j 数据库 会出现任何错误吗 如果是这样 有人可以建议我任何其他图形数据库用作 Android 应用程序的后端吗 是的 尽管Neo4J提供REST API来使用Cypher语言查询数据库 h
  • 使用 JavascriptExecutor 发送密钥并单击 Web 元素

    我正在尝试在新选项卡中打开一个链接 然后在 Firefox 浏览器中使用 Java 中的 selenium 切换到该选项卡 据我了解 为了做到这一点 我需要使用发送键组合 为了在同一窗口中打开链接 我一直在使用这样的东西 WebElemen
  • 为什么我无法将node_modules文件上传到GitHub存储库?

    我有一个使用 Angular 6 编写的项目 我想将该项目上传到 GitHub 但是当我使用 GitHub Desktop 上传该项目时 除了 node modules 文件之外的所有文件都会上传 当我从 GitHub 下载项目并尝试运行时
  • JTable 中的 JSlider

    用于放置一个JSlider into a JTable我写的是AbstractCellEditor它实现了一个TableCellRendererand a TableCellEditor 它使用 0 到 100 之间的值进行初始化 我有一个
  • 使用 SIFT 搜索图像数据库

    Several https stackoverflow com questions 1612037 comparing images using sift 问题 https stackoverflow com questions 15004
  • 在模式注册表中,消费者的模式可能与生产者的模式不同,这实际上意味着什么

    在向 Kafka 生成 AVRO 数据时 Avro 序列化程序在写入数据时使用的字节数组中写入相同的架构 ID Kafka Consumer 根据接收到的字节数组中的模式 ID 从模式注册表中获取模式 因此 生产者和消费者等模式都使用相同的
  • 该操作无法完成,因为 DbContext 已使用 MVC 4 进行处置

    我知道这个问题被问了很多次 我已阅读并实施了所有解决方案 但没有取得成功 当我使用 EF 从数据库检索数据并在视图上使用此模型后与模型绑定时 出现此错误 我的控制器代码是 using System Linq using System Web
  • 卸载 32 位应用程序并安装 64 位应用程序

    是否有可能告诉 Inno Setup 卸载应用程序的 32 位版本 通常驻留在Program Files x86 以便安装 64 位版本的应用程序 通常在Program Files 如果不卸载32位版本 那么它们的bot就会在启动时启动 从
  • 创建一个列来保存连续值的运行计数

    我正在尝试创建一个列 consec 它将在另一个列 二进制 中保留连续值的运行计数 而不使用循环 这就是期望的结果 binary consec 1 0 0 2 1 1 3 1 2 4 1 3 5 1 4 5 0 0 6 1 1 7 1 2
  • MySQL A 或 B,但不能同时两者

    这似乎是一个简单的查询 但我似乎无法理解它或将其与堆栈溢出上的其他帖子联系起来 谁能解释一下 这是我到目前为止所拥有的 它正在返回一个人或两个人去过的所有酒吧的记录 TBL 常见模式 饮酒者 VARCHAR 50 PK 酒吧 VARCHAR
  • 正则表达式 - 查找具有 name 属性但不具有 id 的元素

    这个问题今天就出现在我身上了 我正在从事一个基于 Web Struts 2 的项目 其中包含大量 JSP 并且大部分input select table and a元素仅通过以下方式定义name属性 无id设置 例如