试图理解Railscast第197集(与上一篇文章相关:#17094200)

时间:2013-06-14 21:22:14

标签: javascript jquery regex ruby-on-rails-3 railscasts

我正在尝试为我的页面工作,但我需要了解正则表达式替换。有人可以为我打破这个吗?

function add_fields(link, association, content) {
    var new_id = new Date().getTime();
    var regexp = new RegExp("new_" + association, "g")
    $(link).parent().before(content.replace(regexp, new_id));
}

我理解第一行(var new_id = ...)以及为什么需要它,但第二行是做什么的,以及id替换如何工作?

我问,因为在我的应用中,当点击“add_new_row”时,新行会插入到我页面的顶部,而不是在它所属的表格中。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

该行

    var regexp = new RegExp("new_" + association, "g")

只需创建一个RegExp对象,它代表一个匹配的模式。 (在内部,它“编译”模式,以便,例如,如果它被重复匹配,它将完成所需的一切,只需提前一次,以便后续使用更有效。){{ 1}}是代表“全球”的标志,意思是“替换所有匹配”。我不确定"g"是什么,但该模式将匹配association

下一行

"new_<association>"

使使用模式:将上述模式的所有实例替换为生成且唯一的基于日期时间的id。最后,通过$(link).parent().before(content.replace(regexp, new_id)); 将内容置于其所有兄弟节点之前。