URL을 수정하기 위해 간단한 Google 시트 기능을 작성했습니다. 이 함수는 값 배열을 수동으로 전달할 때 브라우저에서 정상적으로 작동합니다. Google 시트에서 호출 할 때 함수는 다른 모든 행에 대해 에 대해 실패합니다.Google 시트 맞춤 함수 (정규식이없는 경우)에서 사용되는 행이 번갈아 바뀌는 경우
수식을 한 행 아래로 이동하거나 각 셀에 대해 개별적으로 호출하여 "실패한"행에 대해 작업 할 수 있으므로 데이터에 문제가 없습니다. 내 생각에 이것은 Google 시트 안에 regex
의 문제 일 수 있습니다. 의 교류 행의
else {
var matches = /^(http:\/\/.*\/\d\/.*_)(.*)(\/g\d+p.*)$/ig.exec(input.toString());
... continues as normal
:
var pattern = /^http:\/\/(.*\/\d\/.*)_(.*)\/(g\d+p.*)$/ig;
function encode(input) {
if (!input) return "";
if (input.map) {
return input.map(encode);
} else {
try {
// same error happens, at this location, w/ or w/o toString()
var matches = pattern.exec(input.toString());
return matches[1] + encodeURIComponent(matches[2]) + matches[3];
} catch (e) {
return "error=" + e.message + " value = [" + input + "] ";
}
}
}
편집 : 정규식은 "다른"절 안에있을 때 후 오는 사람들을위한 일을 명확하게하려면,이 또한 같은 방법으로 실패 내가 시도
error=Cannot read property "1" from null. value = [ http://... ]
:
데이터,이 오류 메시지가- 이 같은 데이터가 장애 경우
(1의 값을 수행하는 하나의) 두 개의 분리 함수 작성 encode{}
함수
try{}
- A1-A8은
- B1은 화학식 "= 인코딩을 갖는 이들의 URL (A1이 : A8) "B1에서
- 데이터, B3, B5, B7 완벽 가 B2, B4, B6, B8 에러 아웃
- 데이터 (내 오류 메시지가 셀 식 이동
)를 도시 계산 "B2"라고 말하면 =encode(A2:A8)
은 "실패한"행을 계산하고 다른 행은 실패하게 만듭니다!
중요한 부분에서 오류 메시지를 정확히 잘라내 지 않고'value = [http : // ...]'의 값은 무엇입니까? – funkwurm
정규 표현식에 전역 플래그가있는 이유가 있습니까? 확실하지는 않지만, 전 정규 표현식에 이어 정규 표현식이 색인에서 실행될 가능성이 있다고 생각합니다. – AdamL
아담, 지금 살펴 보겠습니다. 습관이 없어서 배열을 통과 할 때 * 외부 * Google 시트가 잘 작동합니다. -/ –