Javascript正则表达式背后

时间:2015-01-16 16:14:16

标签: javascript regex

在我的网络应用中,我需要删除一对``之间内容之前和之后的所有空格和换行符。例如:

``\s\s\s\s\stest1234\s\s\s\s23432\s\s\s\s\s\s\s``会变成这样:``test1234\s\s\s\s23432``

\s是一个空格)

我为此写的正则表达式是:/(``(?<=[\s]*)[^`]*(?=[\s]*)``)/g但我发现JS没有看后面,我如何将这个正则表达式转换成能够完成工作的东西?

我的JavaScript看起来像这样:

replace(/(``(?<=[\s]*)[^`]*(?=[\s]*)``)/g, function(match, p1) {
    return p1;
})

注意,我只想删除外部空白,需要保留属于内容的空白。

1 个答案:

答案 0 :(得分:1)

分两步。

var src = "``     test123423432    \n\n   ``";
var results = src.replace(/``([\s\S]*?)``/g,function(_,m) {
    // note [\s\S] above is to handle JS's lack of a DOTALL flag
    return "``"+m.replace(/^\s+|\s+$/g,"")+"``"; // trim all whitespace
});

如果问题看起来太难,通常将其分解为更小的问题就是答案。