jQuery + Regex:需要帮助创建正则表达式

时间:2013-12-21 19:00:29

标签: jquery regex

我有一个网站,我想使用jQuery删除一些内容。

我想在我的内容中找到这个开头符号[和结束符号]并删除它们,包括它们之间的内容。

要清楚,这实际上是WordPress的短代码格式。其中一些例子包括

  • [cudazi_column width =' 6'类='阿尔法' ]
  • [cudazi_column_end]
  • [cudazi_column width =' 6'类='欧米加' ]
  • [cudazi_slider slide_delay =" 4000" slide_effect ="滑动"类别="家用" ]

我希望能够使用jQuery从内容中删除这些内容

有人能指出我正确的方向吗?

我过去曾将这个脚本用于另一个项目,并且想知道如果我设法获得正确的正则表达式我是否可以再次使用它

$(".content").html(function(i,o){
  return o.replace( /@[0-9:\s]+(am|pm)/ig, '' );
});

2 个答案:

答案 0 :(得分:2)

匹配上述说明中字符串的正则表达式为:

/(\[.+\])/

是的,你可以这样做:

$(".content").html(function(i,o){
  return o.replace( /(\[.+\])/g, '' );
});

答案 1 :(得分:1)

因为[]习惯了正则表达式中的字符范围(例如:[a-z]表示所有小写字符) 你需要引用它们:

\[

开头和方括号都是:

\[ \]

在它们之间,您希望匹配不是结束尖括号的所有内容:

[^\]]*
  • 表示一次或多次。如果你想保留[],你会使用+而不是*

所以开始/结束之间的中间部分匹配你最终:

\[[^\]]*\]

当然你需要/围绕他们:

/\[[^\]]*\]/

你最终得到:

$(".content").html(function(i,o){
  return o.replace(/\[[^\]]*\]//ig, '' );
});