繁体   English   中英

将 JavaScript 转换为 C#

[英]Convert JavaScript to C#

如何将此 JavaScript 转换为 C#?

<script>
  function zeroPad(num, places) {
    var zero = places - num.toString().length + 1;
    return Array(+(zero > 0 && zero)).join("0") + num;
  }

    var accum = 0;
    var pin = parseInt(form.mac.value.replace(/:/g, '').slice(-6), 16) % 12000;
    var p = pin;
    while (pin)
      accum = (((accum + (3 * (pin % 10))) | 0) + (((pin / 10) | 0) % 10)) | 0, pin = ((pin / 100) | 0);
    accum = ((10 - accum % 10) % 10);
    form.pin.value = (zeroPad(p, 7) + "" + accum);
  }
</script>

请详细解释这一行?

parseInt(form.mac.value.replace(/:/g, '').slice(-6), 16) % 12000;

我相信从头到尾的代码转换有点超出 Stack Overflow 的范围。 如果您发布了您的非工作 C# 转换尝试并询问哪里出了问题,我相信您会更快地得到第一个问题的答案。

至于你的第二个问题:

parseInt(form.mac.value.replace(/:/g, '').slice(-6), 16) % 12000;

翻译成:

// Gets some mac address from some object outside the code you posted
var MACAddrString = form.mac.value;
// Delete the :'s between MAC address bytes
MACAddrString = MACAddrString.replace(/:/g, '');
// Take the last 3 bytes (6 hex digit symbols)
MACAddrString = MACAddrString.slice(-6);
// Parse the hex string to a number. Second argument indicates base 16.
var MACAddrInt = parseInt(MACAddrString, 16);
// Calculate the pin
var pin = MACAddrInt % 12000;

使用 c# 而不是转换/移植来包装用于访问的 javascript 函数

你可以考虑使用侏罗纪来做到这一点。

从 .NET 调用 JavaScript 函数

$(document).ready(function () { StartCountDown(); }); //start the countdown function Decrement() { currentMinutes = Math.floor(secs / 60); currentSeconds = secs % 60; if (currentSeconds <= 9) currentSeconds = "0" + currentSeconds; secs--; document.getElementById("timerText").innerHTML = "Time Remaining " + currentMinutes + ":" + currentSeconds; if (secs !== -1) { setTimeout('Decrement()', 1000); } else { window.location.href = "default.aspx?timeout=1" } } function CheckIfAllQuestionAnswerHasBeenSubmitted() { var numItems = $('.tblOptions').length; var flagtocheckcount = 0; $(".tblOptions").each(function () { var groupname = $('input[type=radio]:first', this).attr('name'); if (!$("input[name='" + groupname + "']:checked").val()) { $(this).parents(".tableclass").addClass("border"); var tableid = $(this).closest('table [class^="tableclass"]').attr("id"); } else { flagtocheckcount = flagtocheckcount + 1; } })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM