Javascript 试图理解Railscast第197集(与之前的帖子相关:#17094200)
我正在努力使我的页面工作,但我需要了解正则表达式的替换。有人能帮我把这个分解一下吗Javascript 试图理解Railscast第197集(与之前的帖子相关:#17094200),javascript,jquery,regex,ruby-on-rails-3,railscasts,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)); }
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替换是如何工作的
我这样问是因为在我的应用程序中,当单击“添加新行”时,新行会插入到我页面的顶部,而不是它所属的表中
感谢您提供的任何帮助。热线
var regexp = new RegExp("new_" + association, "g")
只需创建一个表示匹配模式的RegExp
对象。(在内部,它“编译”模式,例如,如果重复匹配,它只需提前完成一次所需的所有操作,以便后续使用更高效。)g是代表“全局”的标志,意思是“替换所有匹配项”我不确定什么是关联
,但该模式将匹配“新”
下一行
$(link).parent().before(content.replace(regexp, new_id));
使用该模式:使用生成的、唯一的、基于日期时间的id替换上述模式的所有实例。最后,通过
before
将内容放在所有同级节点之前,谢谢Andrew-这很有帮助。“association”变量是我的子模型的名称-例如,我可能有一个订单模型,其中可能有许多“行项目”-在这种情况下,关联将是一个包含名称“行项目”的字符串。我还需要将下一行更改为:$(“.DataRow”).after(content.replace(regexp,new_id));这会将插入的行放在最后一个数据行之后。现在,这部分按我的预期工作。我仍然需要开发一些rails功能,以便在用户单击链接时(而不是页面加载时)实现这一点。