1
我有一個javascript函數,我需要使用Coldfusion8運行serverside。如何將使用charCodeAt的JavaScript函數轉換爲Coldfusion?
JavaScript函數使用charCodeAt檢查輸入的值(ILN,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())是生產錯誤,我還沒有發現什麼,我做錯了。
有人可以給我一個指針嗎?
謝謝!
編輯:更新CF環路參數
EDIT2:固定下來的第2中,功能上的最後一個循環迭代得到1-1 = 0。
剛剛發現這一點。另外我現在也沒有那10%3 = 1而只是10/3。 – frequent