【问题标题】:question about javascript string's replace method关于javascript字符串替换方法的问题
【发布时间】:2011-01-22 03:44:45
【问题描述】:

我知道我可以将一个字符串作为第二个参数传递给 JavaScript 字符串对象的 replace 方法。在这种情况下,我可以使用 $`$' 来引用成功的左/右部分文本匹配。现在我的问题是,如果我将回调函数作为第二个参数传递,我怎样才能获得相同的信息?我想在回调函数中使用这个信息。非常感谢。

【问题讨论】:

  • ...哇,你可以使用回调吗?整洁!

标签: javascript regex string replace


【解决方案1】:

Mozilla's documentation;你不会免费获得这些数据。

好消息是,您将匹配的偏移量作为倒数第二个参数,并将总字符串作为最后一个参数。所以你可以运行你自己的子字符串函数。

var str = 'abc';
str = str.replace('b', function (match, offset, full) {
    var before = full.substr(0, offset),
        after = full.substr(offset + 1, full.length - offset);
    return 'foo'; // or, ya know, something actually using before and after
});

【讨论】:

    【解决方案2】:
    var str = 'abc';
    str = str.replace('b', function (match) {
        // (!) List of actual arguments depends from template of RegEx >>>
        var offset = arguments.length - 1, full = arguments[offset];
        offset = arguments[offset - 1];
        // (!) But the first argument is match
        var before = full.substr(0, offset),
            after = full.substr(offset + 1, full.length - offset);
        return 'foo'; // or, ya know, something actually using before and after
    });
    

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 2013-07-27
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 2012-09-25
      相关资源
      最近更新 更多