jquery在大括号内解析文本

时间:2011-08-14 22:23:29

标签: jquery regex parsing

我想删除

  • 整个文字包括大括号
  • 外部大括号,但不包括[[和]]中的文本

[[必须保留此文]] {{remove this junk}}和此。

我实施了上述内容,它的工作地点为:http://jsfiddle.net/DMGdG/ 我用过这个:https://raw.github.com/cowboy/jquery-replacetext/master/jquery.ba-replacetext.min.js

但是在我的服务器(127.0.0.1)中,相同的代码没有做到这一点,我尝试了两种方式

str.replace(regex, charecter)

和jsfiddle提到的那个。

我的疑问:

  • 是我的正则表达式组合正确,如果不是请建议,有什么不对。
  • 请不要在其简单的main.js
  • 上考虑任何服务器错误


jstr.replace("/\s*\{{.*?\}}\s*/g", " "); // for removing curly braces and text within.

jstr.replace("/[\[(.)\]]/g", ""); // to replace the square braces.

index.html只有<p> Sample Text(as shown above)</p>

2 个答案:

答案 0 :(得分:1)

而不是:

$("p").replaceText(/\{\{.+\}\}/U/gi, '****' );

试试这个:

$("p").replaceText(/\{\{.+?\}\}/gi, '****' );

添加问号会使匹配的模式不贪婪 - 也就是说,它会匹配它遇到的下一个}},而不是最后一个。{/ p>


编辑:您已声明这不适合您。也许省略replaceText插件并使用普通的旧replace()代替它:

$("p").each( function(){
    $(this).text( $(this).text().replace(/\{\{.+?\}\}/gi, '****' ) );
});

同样,如上所述,它似乎在您的小提琴中起作用。也许问题在于插件。

答案 1 :(得分:0)

这有效:

$(function()
{
    $("p").replaceText(/\{\{.*?\}\}/gi, '' ); //removes {{...}}
    $("p").replaceText(/\[\[(.*?)\]\]/gi, '$1' ); //removes [[ and ]] around text
});