У меня есть функция javascript, которую мне нужно запустить serveride с помощью Coldfusion8.Как преобразовать функцию javascript с помощью charCodeAt в ColdFusion?
Код JavaScript функция использует charCodeAt для проверки введенных значений (ИОС, 13-разрядные значения, например 1234567891231) и вычисляет checkVal:
checker=0;
for (i=11; i>0; i=i-2){
checker += (iln.charCodeAt(i)-48)*3;
checker += iln.charCodeAt(i-1)-48;
}
checkVal = 10 - (checker%10);
if(checkVal==10){
checkVal=0;
}
if(checkVal != iln.charAt(12)){
alert("error, should be" + checkVal);
}
В Coldfusion Я пытаюсь сделать это с помощью петли, mid() и asc(), но я не могу заставить его работать. Вот что у меня есть:
<cscript>
var checkValue = 1234567891231;
var done = "";
</cscript>
<cfloop from="11" to="1" index="i" step="-2">
<cfscript>
check = check + (ASC(MID(checkValue,#i#,1))-48)*3;
check = check + ASC(MID(checkValue,(#i#-1),1))-48;
</cfscript>
</cfloop>
<cfset done = 10 - check/10>
<cfif done EQ 10><cfset done = 0></cfif>
<cfif done NEQ mid(checkValue,12,1)>
<cfscript>
// error handler
</cfscript>
</cfif>
значения передаются правильно, но мой ASC (MID()) производит ошибку, и я не узнал, что я делаю неправильно.
Может ли кто-нибудь дать мне указатель?
Спасибо!
EDIT: обновленные параметры контура CF
EDIT2: прижали его вплоть до 2-й средней функции получать 1-1 = 0 на последней итерации цикла.
Просто нашел, что тоже. Плюс я также не стал теперь 10% 3 = 1 и просто сделал 10/3. – frequent