正则表达式 - 查找具有 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 的元素 的相关文章

  • 对翻译进行语义标记

    我正在标记一份历史手稿 该手稿已从德文翻译成英文 在网页上 我将并排提供两种语言 是否有一种可接受的方法来标记这种情况 我正在考虑使用部分标签分割翻译块并为每个翻译块提供一个 lang 属性 然而 从语义上讲 这无法传达一个部分与另一部分大
  • 动态更改复选框不会触发onChange?

    注意 jQuery 不是一个选项 我想检测复选框状态的变化 但是当我这样做时 onChange 事件似乎没有触发 document getElementById myCheckBox addEventListener change func
  • 最大宽度不适用于弹性项目

    我有一列中有一个弹性容器和两个弹性子容器 顶部 div 应填充所有剩余空间 底部 div 的高度应由内容和max width 但底部 div 的宽度正在缩小到其内容的宽度 这max width正在被忽视 hero image min hei
  • Twitter Bootstrap 按钮组控制单选按钮/复选框

    我正在尝试使用Twitter Bootstrap 按钮组 http twitter github com bootstrap javascript html buttons作为一组实际的表单输入控件 默认情况下 这些按钮组的功能类似于单选按
  • 使用 HTML 文本预填充 Gmail 撰写屏幕

    我发现要打开 Gmail 撰写屏幕 您必须登录并打开以下链接 替换变量填充撰写表单上的相应位置 但是 如果我想输入正文多行文本或换行符 即使我对它进行 urlencode 它也不起作用 这里有什么想法吗 检查您的 UrlEncode 方法是
  • 如何使用复选框来过滤 Angular 的结果?

    我正在尝试使用复选框应用过滤器 复选框正确显示 div div
  • 用javascript检查瑞典语字符?

    如何重写此代码以检查所有字符 包括瑞典语 和 字符 alphaExp a zA Z 以上仅检查英文字母 瑞典语在 Z 之后包含 其余部分与英语相同 Thanks 你试过了吗 a zA Z 在我的火狐浏览器中 a zA Z test 评估为真
  • Polygonal Divs——让内容以特定形状溢出?

    这是我目前正在开发的网站 http willcrichton net http willcrichton net 如果单击中间六边形每一侧的箭头 您可以看到它使用 jQuery jQuery Cycle jQuery Easing 左右过渡
  • django 尝试了这些 url 模式

    当我尝试访问我的站点时 它会给出以下信息 使用 mysite urls 中定义的 URLconf Django 按以下顺序尝试了这些 URL 模式 管理员 当前 URL 与其中任何一个都不匹配 如果我访问该网站并附加 admin 它会将我带
  • 如何清除画布元素中的多边形区域?

    我使用过clearRect函数 但没有看到多边形的等效函数 我天真地尝试过 ctx fillStyle transparent ctx beginPath ctx moveTo 0 0 ctx lineTo 100 50 ctx lineT
  • 外部 CSS 是否应用于 jsPDF 生成的 pdf

    我已经开始使用 jspdf 制作一些演示 我有一个 html 文件 我的 css 在外部文件中 我写了下面的代码来生成我的pdf pdfButton on click function var pdf new jsPDF p in lett
  • 如何在html中创建字体选择栏

    我想创建一个下拉菜单 在其中我们可以看到所有可用的字体 并且可以选择我们选择的任何字体 我还想创建一个字体颜色选择小部件 存在大量的字体样式 我想知道如何获取所有这些字体以及如何创建一个小部件 用户可以使用该小部件选择他选择的颜色 为了创建
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单
  • 如何使用 Soundcloud api 将流传输到 html5 音频播放器中?

    我刚刚开始学习 javascript 作为我的第一次尝试 我想创建自定义音频播放器 它使用 soundcloud 的 api 作为音乐源 到目前为止 这就是我的设置
  • 如何使CSS图像溢出其所在的div

    我在 css 中输入了一个图像 代码如下 imgtemp float right top 0px left 0px overflow visible width 100 我还在页面中添加了 div 标签 以便其显示 但由于设计原因 图像比
  • IE9 中的 HTML5 视频两侧显示黑色边框

    我在我的网站中使用 HTML5 视频标签 该视频在所有浏览器中都能完美播放 但在 IE9 中它显示黑色边框 黑色扩展名 就像通常情况下 当播放器的大小大于视频的大小时 视频播放器会在其两侧显示一些黑色扩展 这是我们使用的解决方案 对于视频
  • 单击保存文件

    我希望能够通过单击下载 csv 文件 而不是在浏览器中打开 我把这段代码 a href file csv download file a 但单击它会在浏览器中打开 v 文件 在本地主机中 当我单击链接时 它正在下载 但在服务器上时 它在浏览
  • WebCore::UserGestureIndicator::processingUserGesture 中的 EXC_BAD_ACCESS (SIGSEGV)

    我有一个使用 UIWebView 和 HTML5 websockets 构建的 iOS 应用程序 该应用程序经历了看似随机的崩溃 它发生在用户与其交互时以及在用户和应用程序之间没有发生交互的寿命测试期间 崩溃日志都有以下内容 Excepti
  • 如何在输入时格式化 contenteditable div?

    我正在尝试编写一个函数 允许 contenteditable div 在用户输入 div 时执行一些自动格式化 到目前为止我只能让它在 IE 中运行 有人可以帮助我吗 function formatOnKeyUp if window get
  • 表单帖子上的 asp.net mvc 编码

    我在我的 asp net mvc 表单 带有文本区域的 nicedit 中使用富文本编辑器 当我在帖子上提交表单时 因为它不是 html 编码的 我收到以下消息 从客户端检测到潜在危险的 Request Form 值 如何对 post 上的

随机推荐

  • 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设置 例如