字符的Javascript替换.具有

Javascript replacement of the characters . with ,

本文关键字:具有 替换 Javascript 字符      更新时间:2023-09-26

我正在尝试用javascript表单进行简单的替换。

表单正在向外部支付网关提交发票编号和金额。问题是支付网关不接受(逗号)作为整数和小数部分(即美元,美分)之间的分隔符,而只接受(美元美分)。

我想确保它接受两个字符。(点)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>

解决方案是将","替换为"."如果这就是你想要做的:

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

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

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

祝你在搜索中好运!

你可以试试这个:

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

或者这个:

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

小心:如果你的代码要在更多的文化中运行,你应该用另一种方式来处理。