그래서 난이 다음 코드경기와 자바 스크립트 부분 문자열 문제를 대체
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'", 내 목표는 %를 사용하지 않고 일치 항목을 가져 와서 인수 배열 (즉, 인수 [$ 1])에 넣을 수 있지만 시도한 모든 것이 반환되었습니다. 인수 [% 1] 또는 인수 [% 2]을 (를) 찾는 것으로 보이는 '정의되지 않음'.
첫 번째 코드 집합이 잘못된 값을 반환하지만 두 번째 집합은 그렇지 않은 이유는 무엇입니까? 나는 $ 1, $ 2 등을 사용하여 부분 문자열 일치를 찾을 수 있다는 인상을 받았다.
추신 : 나는 이것을 아주 잘 설명하지 않았다면 미안하다.
감사합니다. 하지만 여전히 "% 1"및 "% 2"변수를 반환하는 이유와 대체 "1"및 "2"반환하는 다른 이유는 이해가 안나요? – user3711899
replace 함수의 첫 번째 매개 변수는 바꾸기를 시작하는 문자열입니다. 두 번째 매개 변수는 [첫 번째] 일치 항목을 포함하는 매개 변수입니다. – Malk