javascript - 使用正则表达式查找与输入字符串中的一组单词/代码匹配的单词

标签 javascript regex

我正在尝试使用 JavaScript 的字符串替换方法从用户输入中删除与自定义模式中的一组单词或代码不匹配的任何字符或单词。例如,如果我有一个模式 %PT!!@@ 和输入 %PT1234!!test@@,我想删除任何不存在的内容匹配 '%PT', '!!'和 '@@'。这意味着“1234”和“test”将从字符串中删除。我已经看到使用正则表达式(如 (?!(%PT|!!|@@)) 的类似问题,但这不起作用。

最佳答案

因此,您有一个 %PT1234!!test@@ 字符串,您需要删除任何与 %PT 不匹配的文本,!! @@ 子字符串。

您可以捕获要保留的这些字符串(或模式)并匹配其他所有内容。然后,替换为对组 1 的反向引用以恢复结果中的该值。

或者,您可以简单地匹配您需要获取的内容,然后加入找到的值。

查看 JS 演示:

console.log(
  "%PT1234!!test@@".replace(/(%PT|!!|@@)|[\s\S]/g, '$1')
) // => %PT!!@@
console.log(
  "%PT1234!!test@@".match(/%PT|!!|@@/g).join("")
) // => %PT!!@@

请参阅regex demo online .

详细信息

  • (%PT|!!|@@) - 捕获组 1:列出的任何值:%PT!!@@
  • | - 或
  • [\s\S] - 任何字符。

关于javascript - 使用正则表达式查找与输入字符串中的一组单词/代码匹配的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010275/

相关文章:

javascript - animate d3.js 折线图路径退出

javascript - Fancybox 弹出一次 session

javascript - 使用 Date.js 以月份名称、##、#### 格式预填充日期

javascript - 如何在 Protractor 中将一个 js 文件中的 2 个不同函数导出到另一个 Js 文件中

Javascript RegExp 对象在 Chrome、Firefox 中工作,但在 IE 11 中不起作用(正则表达式中的语法错误)

regex - SVN 标签版本号从命令行递增

php - 在 PHP 中使用 preg_match 时出现 "Unknown modifier ' g ' in..."?

php - 如何在 Laravel 4.2 的 required_if 值中使用正则表达式

javascript - Google Analytics 事件不起作用 - 动态添加文件下载点击事件

regex - Google Analytics RegEx:包括所有带有字符串“example”的URL,但排除那些带有“.com/example”的URL