javascript - 正则表达式删除大括号中的单词

标签 javascript regex string replace

我正在寻找一种方法来从另一个子字符串中删除大括号内的任何子字符串。

例如:

  • 如果我有字符串“The cat is {not} mine”,我想要一个返回“The cat is mine”的函数;
  • 如果我有“玻璃被狗打破了”,我想要一个返回“玻璃被打破了”的函数

我读到可以在 replace 函数中使用正则表达式,但我不知道如何使用它。

最佳答案

这有效:

var s="The {yellow} cat is {not} mine";
s.replace(/\s?\{[^}]+\}/g, ''); // "The cat is mine"

正则表达式允许可选的前导空格 s? ,然后找到左大括号 \{ ,然后搜索组 []+ 中的多个字符这不是右大括号 ^} - 直到文字结束 curl } .
所有操作均通过 g 进行操作多次替换的全局标志。
全部替换为 "" .

<小时/> 在这种情况下,您需要找到 <[this stuff]><[]> 分隔:

var s = "The <[yellow]> cat is <[not]> mine";
s = s.replace(/\s*<\[[^\]\>]*\]>/g, "");
console.log( s );     // "The cat is mine"

关于javascript - 正则表达式删除大括号中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32172541/

相关文章:

c++ - 匹配除双引号以外的任何字符

ruby - 在 ruby​​ 中捕获可选参数

ruby - 测试变量是否与多个字符串中的任何一个匹配,而没有长的 if-elsif 链或 case-when

java - 有什么方法可以搜索,然后从 String 中调用 java 中的方法?

c++ - 将一个c++字符串分成两部分

javascript - 如何使用js按特定顺序运行弹出窗口?

javascript - 如何使用箭头键禁用 FF 中的页面滚动

javascript - 正则表达式 - 从字符串中删除运算符的替换方法会产生不需要的结果

javascript - 如何使用 jquery sortable 将元素从框 1 拖放到框 2?

Javascript:Document.URL.indexOf 问题