Javascript 的正则表达式lookbehind 解决方法?

2024-02-13

我在正则表达式方面很糟糕,所以我会以尝试更好地描述我的问题的名义,以一种非常规的方式传达我的问题。

var TheBadPattern = /(\d{2}:\d{2}:\d{2},\d{3})/;
var TheGoodPattern = /([a-zA-Z0-9\-,.;:'"])(?:\r\n?|\n)([a-zA-Z0-9\-])/gi;

// My goal is to then do this
inputString = inputString.replace(TheGoodPattern, '$1 $2);

问题:我想匹配所有好的模式并进行后续查找/替换,除非它们是由坏模式进行的,有什么想法吗?我能够用其他支持lookbehind的语言来完成此任务,但如果没有它我会不知所措? (ps:据我了解,JS不支持lookahead/lookbehind,或者如果你愿意的话,'?>!', '?


JavaScript 确实支持前瞻。由于您只需要向后查找(而不是向前查找),因此有一个解决方法(这并不能真正提高代码的可读性,但它有效!)。所以你可以做的就是反转字符串和模式。

inputString = inputString.split("").reverse().join("");
var pattern = /([a-z0-9\-])(?:\n\r?|\r)([a-z0-9\-,.;:'"])(?!\d{3},\d{2}:\d{2}:\d{2})/gi
inputString = inputString.replace(TheGoodPattern, '$1 $2');
inputString = inputString.split("").reverse().join("");

请注意,您已经多余地使用了大写字母(它们正在被处理)i修饰符)。

如果您提供一些示例输入,我实际上会为您测试它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 的正则表达式lookbehind 解决方法? 的相关文章

  • 使用selenium IDE提取部分文本并将其放入变量中

    有人可以告诉我应该使用哪个命令来使用 Selenium Ide 从文本中仅提取数字 694575 并将其放入变量中以供进一步使用 这是带有文本的 div div class loginBoxTitle Edit Exhibition Cen
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 未捕获的引用错误:myFunction 未定义[重复]

    这个问题在这里已经有答案了 这到底是怎么回事 http jsfiddle net sVT54 http jsfiddle net sVT54
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • 访问 TypeScript 数组的最后一个元素

    TypeScript 中有访问数组最后一个元素的符号吗 在 Ruby 中我可以说 array 1 有类似的东西吗 您可以通过索引访问数组元素 数组中最后一个元素的索引将是数组的长度 1 因为索引是从零开始的 这应该有效 var items
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 重复命名捕获组

    我有一个带有如下字段的字符串 id ID 120 1 ID 141 5 ID 92 5 N A 我只想捕获命名捕获组的 ID 即没有 N A 或其他可能潜入的项目 我认为这可能有效 但没有运气 bid

随机推荐

  • 打字稿中的 Object.freeze / Object.seal

    Is Object freezeTypescript 中建议的还是有其他方法来确保对象保持不可变 Since const仅保护实例 但不保护属性 这显然不是我正在寻找的答案 还有其他方法可以确保对象保持不可变吗 这取决于您想要的保险级别 如
  • Android - 应用内购买 - 您需要将 BILLING 权限添加到您的 APK

    长期以来 我一直面临应用内购买问题 我需要在 Android 应用程序中集成应用内功能 但是当我将 APK 文件上传到 Play 商店时 它不允许我添加 SKU 值 要添加应用内商品 您需要向您的 APK 添加 BILLING 权限我已在清
  • 在Java中组合多个声音流

    我有许多用 PCM PCM SIGNED 8000 0 Hz 16 位 单声道 2 字节 帧 小端 编码的语音声音流 我想通过网络发送它们 为了节省带宽 我目前使用 JSpeex 对流进行编码 然而 为了节省更多带宽 我想 如果可能 在使用
  • Jquery UI范围滑块对鼠标移动的滞后响应

    我正在使用 JQuery UI 范围滑块 我的滑块手柄似乎不能随光标平滑移动 而是滞后 我将 class styloot 与我的 body 标签一起使用 我发现从我的 html 结构中的 body 标记中删除此类可以使滑块移动变得平滑 尽管
  • 使用 Swing 和 Netbeans GUI 编辑器保存文件/打开文件对话框

    我是 Java 初学者 我正在 netbeans 7 3 IDE 中使用其 GUI 编辑器制作一个简单的文本编辑器 我面临的主要问题是我无法保存 打开文件 我创建了 保存 按钮 当我放下文件选择器时 它作为嵌入在 java 窗口中的普通打开
  • 是否可以将远程文件从 Electron App 拖到文件系统上?

    我一直在尝试 Electron 应用程序的文件系统拖放功能 并且在使用本地文件进行所有操作时没有遇到任何问题 我在文档中没有遇到任何内容 所以我想看看是否有人知道这是否可能 我想使用 Electron 中的拖出功能将远程文件拖到应用程序之外
  • 当移动的 div 到达特定区域时将 CSS 应用到它。用于移动元件的静态放大镜

    我偶然发现了创建一个非常具体的元素的问题 我有一个显示不同内容的股票代码 文本 图像和其他类型的内容 我想要做的是添加一个静态 放大镜 以便所有移动内容在放大镜区域时都会缩放 我看到的大多数 jquery 缩放或放大插件从未使用固定位置 而
  • 通过 BLE 上的 ANT+FEC 将用户体重发送到智能训练器

    有谁知道如何将室内智能训练器的用户体重设置发送到 DataPage 55 我想更新用户体重 以使成绩模拟更加真实 我已成功发送成绩 数据页 51 并且对用户体重实施相同的格式似乎没有任何作用 func sendUserConfig peri
  • 带有弧形尖底的头部

    我需要创建下图所示的蓝 绿色区域 它有倾斜的侧面 向下延伸至有轻微弯曲的点 使用什么是实现此目的的最佳方法CSS 如果无法支持 IE9 我需要支持 IE9 或 IE10 我已经开始了基础的演示在这里 http jsbin com quxoh
  • 新的关键字和方法隐藏

    new 关键字用于隐藏相同的基类实现 但我不确定为什么以下代码会生成 Baseclass 输出 class Baseclass public void fun Console Write Base class class Derived1
  • 在 Go 中解析 XML 时处理命名空间

    我正在尝试在 Go 中解析 XML 片段 package main import encoding xml fmt type XML struct Foo string xml foo func main rawXML byte
  • 如何给出 DateTime.Date 格式?

    日期时间 dt 日期时间 Now dt Date 创建为 31 10 2012 00 00 00 它创建为 dd mm yyyy 格式 但我需要 dd mm yyyy 我可以使用 return new DateTime d Year d M
  • 如何在两个 nib 文件之间共享 NSArrayController?

    我有一组图像和两个 nib 文件 一个 nib 文件有一个窗口 在 NSTableView 中显示图像 另一个笔尖有一个窗口 可将图像数组绘制到 NSView 中 并在选定的图像上绘制突出显示 图像数组由 NSArrayController
  • 如何将 ascii 值字符串转换为 python 中的原始字符/数字

    我有一个带有数字的字符串 我之前用编码器转换了它 但现在我正在尝试解码它 我四处搜索 似乎没有答案 如果你有任何办法 亲爱的 请告诉我 字符串 91 39 65 97 66 98 67 99 32 49 50 51 39 93 结果 ABC
  • 如何在编译时指定资源注释的名称?

    我们的代码是这样的 Resource name java comp resource foo bar ONE QUEUE private Queue queue 但是 在一种部署场景中 队列注释应如下所示 Resource name jav
  • Composer 自动加载完整示例?

    我想把all https getcomposer org doc 04 schema md psr 0 the https stackoverflow com questions 15179025 unable to autoload cl
  • 暂停和恢复 AnimateWithDuration 动画 ios

    因此 我在 animateWithDuration 方法的帮助下完成了动画 但我需要在应用程序进入后台时停止动画 并在应用程序返回前台时恢复动画 有什么方法可以实现这一点 我的动画 标签在一定时间间隔后淡入淡出 void viewDidLo
  • Twitter API:如何仅搜索带有地理标记的推文

    我该如何使用Twitter Search API 或其他 获取具有以下内容的推文列表 geo param EDIT 举例来说 我不会通过 apple 标签获取地理标记推文列表 没有位置过滤器 全球范围内 看起来最新的 API 支持这一点 只
  • 如何强制输入只允许字母?

    此处使用 jQuery 但无法阻止在输入字段中输入数字 http codepen io leongaban pen owbjg http codepen io leongaban pen owbjg Input
  • Javascript 的正则表达式lookbehind 解决方法?

    我在正则表达式方面很糟糕 所以我会以尝试更好地描述我的问题的名义 以一种非常规的方式传达我的问题 var TheBadPattern d 2 d 2 d 2 d 3 var TheGoodPattern a zA Z0 9 r n n a