【发布时间】:2020-01-28 03:41:05
【问题描述】:
这是测试代码。我不确定为什么没有在 console.log("hasToken : " + hasToken); 行上返回字符串?我应该在 3 次尝试失败后将其归还。没有标记 (var XX) 的字符串可以正常工作,但带有标记 (var X) 的字符串永远不会正确返回字符串。如果我单步执行代码,我会看到字符串被传回,但发生了其他事情,我不知道为什么? console.log 显示 hasToken 值未定义?我看到应该返回字符串的位置。Test Code Here
var x = "//tokene.secure.adnxs.com/px?randomnumber=[timeSTAMP]&url=[URl]&newvsreturning=[NEWvsRETURNING]";
var xx = '//xwww.googleadservices.com/pagead/conversion/822232847/?label=_7yrCLe91H4Qj46JiAM&guid=ON&script=0';
var regex = new RegExp("/\\[URL\\]|\\[NEWVSRETURNING\\]|\\[RANDOMNUMBER\\]|\\[TIMESTAMP\\]|\\[CACHEBUSTER\\]/", "i");
function validateTokenRemoval(str) {
cnt = 0;
function testTokenRemoved(str) {
if ((regex.test(str))&&(cnt < 2)) {
//if in here it still has tokens
cnt++;
//str = detokenizeTags(imgSrc);
console.log(cnt + " failed : " + str);
testTokenRemoved(str);
} else {
console.log(cnt + " passed : " + str);
return str;
}
};
return testTokenRemoved(str);
};
var hasToken = validateTokenRemoval(x);
var noToken = validateTokenRemoval(xx);
console.log("hasToken : " + hasToken);
console.log("noToken : " + noToken);
【问题讨论】:
-
在真实情况下你不会返回任何东西。
-
return testTokenRemoved(....) -
这是设计使然。只有失败 3 次或通过才会返回。
标签: javascript