为要在JavaScript中的等式中使用的字母赋值

时间:2013-03-17 11:23:50

标签: javascript

我正在用JavaScript编写一个处理一系列简单方程的应用程序。它主要是涉及从0到10的数字的添加,但是字母X也需要可用:计为数字10.这是我的一部分:

<script type="text/javascript">
    function updateround() {
        document.form.round01.value = (document.form.arrow01.value -0) + (document.form.arrow02.value -0) + (document.form.arrow03.value -0);
    }
</script>
<body>
    <center>
            <form name="form">
                <table>
                    <tr>
                        <td><input name="arrow01" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow02" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow03" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="round01" style="width: 30px;"></td>
                    </tr>
                </table>
            </form>
    </center>
</body>

如果你运行这个,你会得到4个输入字段:如果你在前三个中写下数字并点击其他地方,他们会在第四个字段中加起来。

我正在寻找的是如何制作它,以便如果您将字母X输入前三个字段之一,应用程序将其用作等式中的10。例如,如果在前三个字段中输入X,9和9,则在第四个字段中输入28,如果输入X,X和6,则输入26,依此类推。另外,我在哪里将此代码放在应用程序中?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果您想使用base-11系统,可以使用基数为11的parseInt。只需要a / A而不是X,所以你需要在之前使用替换:

parseInt(document.form.arrow01.value.replace(/x/gi, "a"), 11)

如果您还想使用基数11作为输出,可以使用toString并再次使用替换:

result.toString(11).replace(/a/gi, "X");

答案 1 :(得分:0)

这是一个额外添加的小功能:

function val_or_x_from_object(obj) {
    if (obj.value == "x" || obj.value == "X") {
        return 10;  
    }
    else {
        val = parseFloat(obj.value);
        return (isNaN(val)? 0 : val);
    }
}

function updateround() {
        document.form.round01.value = val_or_x_from_object(document.form.arrow01) + 
           val_or_x_from_object(document.form.arrow02) + 
            val_or_x_from_object(document.form.arrow03);
    }