【发布时间】:2014-06-05 16:03:11
【问题描述】:
所以我有以下代码
function format(){
return arguments[0].replace(
/%([0-9])/g,
function($1){alert($1)}
)
}
var sql=format("SELECT * FROM %1 WHERE id='%2' ", table, id);
var table= "table1";
var id = "F1542";
这会提醒“%1”和“%2”,但如果我运行此代码:
function format(){
return arguments[0].replace(
/%([0-9])/g,
"$1"
)
}
var sql=format("SELECT * FROM %1 WHERE id='%2' ", table, id);
alert(sql);
我得到“SELECT * FROM 1 WHERE id='2'”,我的目标是获得没有 % 的匹配项,以便我可以在参数数组中使用它(即 arguments[$1]),但是我所做的一切'已尝试返回 'undefined',因为它似乎正在寻找参数 [%1] 或参数 [%2]。
为什么第一组代码返回错误的值,而第二组没有?我的印象是可以使用 $1、$2 等找到子字符串匹配项...
PS 抱歉,如果我没有很好地解释这一点。
【问题讨论】:
标签: javascript regex arguments substring