Javascript替换字符。用,

时间:2013-02-21 22:38:02

标签: javascript

我正在尝试以javascript格式进行简单的替换。

表单正在向外部支付网关提交invoicenumber和金额。问题是支付网关不接受,(逗号)作为整数和小数部分之间的分隔符(即美元,分),但仅限于(dollar.cent)。

我想确保它接受这两个字符。 (点)AND,(逗号)所以客户可以使用两者,表格将只发送。到外部服务器。

更新:

这是当前的javascript代码:

`

    function startPayment() {
        var objForm = document.getElementById("ePay");

        if (objForm.merchantnumber.value.length < 7) {
            alert("Please enter your merchant!");
            return false;
        }

        paymentwindow = new PaymentWindow({

            'windowstate': 1,

            'paymentcollection': 1,

            'language': 1,

            'merchantnumber': objForm.merchantnumber.value,

            'amount': objForm.amount.value * "100",

            'currency': "208",

            'orderid': objForm.orderid.value,

        });

        paymentwindow.open();
    }



    function init() {
        var sURL = String(window.location);
        var arrURL = sURL.split("/");
        var sAcceptURL = "";
        var objForm = document.getElementById("ePay");
        var n;

        for (n = 0; n < arrURL.length - 1; n++)
            sAcceptURL += arrURL[n] + "/";

        objForm.cancelurl.value = sURL;
        objForm.accepturl.value = sAcceptURL + "accept.html";
    }

</script>`

这是HTML代码:

<tr>
<td>Amount:</td>
<td>
<input type="text" name="amount" value="" style="width: 200px;" />
</td>
<td>
Amount to pay
</td>

2 个答案:

答案 0 :(得分:1)

对此的解决方案是用'。'替换','。如果这就是你想要做的事情:

amount.replace(/,/g, '.');

这一行将使用RegExp查找','的出现,并将其替换为'。'。但是,因为您要在后端创建一个安全的表单,所以一些建议的做法是先在后端解析它,并确认没有像SQL注入这样的内容,并确保所有输入都有效。例如,如果您只想接受数字和'。'在你的输入中,我会使用:

var rxCheck = /[0-9\.]*/g;
if (!rxCheck.test(amount)) {
    // TODO: .. code if the input is invalid ..
}

祝你好运!

答案 1 :(得分:0)

你可以试试这个:

objForm.amount.value.split(",").join(".");

或者这个:

objForm.amount.value.replace( /,/g, "." )

注意:如果您的代码要在更多文化中运行,您应该采用另一种方式处理。