我正在尝试以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>
答案 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, "." )
注意:如果您的代码要在更多文化中运行,您应该采用另一种方式处理。