【问题标题】:Replace string between "[]" with javascript using regexp使用正则表达式将“[]”之间的字符串替换为javascript
【发布时间】:2013-02-21 02:53:21
【问题描述】:

我有一个从 web 服务返回的字符串,其中包含像“[]”这样的开括号 所以字符串看起来像这样:

[1] blabh balh blah

我想编写一个正则表达式来删除“[1]”或左括号之间的任何内容。 现在我尝试了类似的东西:

var regexp = /\[[]\\]/g;

但这不起作用。我在这里绊倒了自己的两只脚。 我只是想找到以“[”开头并以“]”结尾的任何内容,并替换中间的所有内容,包括左括号和右括号。 任何帮助或指导将不胜感激。

【问题讨论】:

  • 也许 /\[[0-9]*\]/; 不需要 g 标志,因为您不想全局替换。

标签: javascript regex


【解决方案1】:

这应该可行:

var str = '[1] blabh balh blah';
str = str.replace(/\[.*?\]\s?/g, '');

如果你有嵌套的括号,regexp 可能不是最好的选择。

【讨论】:

  • 哥们,你是我的英雄,我现在感觉好傻!!!谢谢你的回答。一个快速的问题是“[.*]”是一种通配符类型的搜索吗?谢谢你,我谦虚地谢谢你。
  • 我刚刚在 Firefox Web Console 中尝试过,它返回 blabh balh blah
  • @Miguel:是的,.* 的意思是“任何字符 0 次或更多次”
  • @elclanrs:你应该让.* 不贪婪。
  • @系统是对的。如果你的句子中的其他地方有一个右括号,你最终会替换太多。见regular-expressions.info/repeat.html
【解决方案2】:

是否需要使用正则表达式?如果没有,一个简单的解决方案可能是:

var myString = '[1] Bob Loblaw is the man';
myString = myString.slice(myString.indexOf(']')+1);

【讨论】:

  • Web 控制台返回“Bob Loblaw 是男人”。您还需要摆脱空间。
猜你喜欢
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多