我尝试了很多例子,但仍然无法找到解决问题的好方法。
如果我使用文本字段,那么我的应用会裁剪最后3位数字并使交易无法进行。问题是因为用户可能输入space
,
例如 -
1234 1234 4564 1
当我使用JQuery(type =“text”)时,我会过滤掉字符,但我仍然有空间和裁剪的问题。
知道如何以更好的方式解决这个问题吗?
我并不喜欢JS的键映射因为我不知道用户想要如何使用空间。
这是我的代码 -
<input class="required" id="field" type="number" min="0000" max="9999" pattern="[0-9]{4}" size="4" name="cvv"/>
<div class="FormInput">
<input name="var_creditcard_no" type="number" id="var_creditcard_no" onkeypress="return Check_mobile_number(event)" maxlength="16" value="<?php echo set_value('var_creditcard_no', '') ?>" placeholder="Credit Card Number *">
<?php echo form_error('var_creditcard_no', '<label class="error">', '</label>') ?>
</div>
这是JQuery代码 -
$(function() {
var txt = $("#myTextbox");
var func = function() {
txt.val(txt.val().replace(/\s/g, ''));
}
txt.keyup(func).blur(func);
});
答案 0 :(得分:1)
HTML代码
cc number
<br/>
<input class="required" id="field" type="text" maxlength="16" onkeypress="return isNumberKey(event)" name="cc" />max 16
<br/>cvv
<br/>
<input class="required" id="field" type="text" maxlength="4" onkeypress="return isNumberKey(event)" name="cvv" />max 4
Js代码
/* isNumberKey
Only allows NUMBERS to be keyed into a text field.
@environment ALL
@param evt - The specified EVENT that happens on the element.
@return True if number, false otherwise.
Source:
http://www.kk-design.com/DevCookbook/JavascriptLibrary/isnumberkey.html
*/
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
// Added to allow decimal, period, or delete
if (charCode == 110 || charCode == 190 || charCode == 46) return true;
if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
return true;
} // isNumberKey
Solution is here我个人不喜欢它的工作。
但可能他们应该为信用卡添加新的html类型我认为所有人都会使用它。
答案 1 :(得分:0)
var txt = '1234 1234 4564 1';
txt = txt.replace(/\s/g,'');
var valid = txt.match(/([0-9]{16})/g);
if(valid){
//submit form
}
&#13;
存储信用卡信息不违法;但是,强烈建议不要这样做,因为您可以对发生的任何损害负责。
首先要做的事情是符合PCI标准https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1.pdf
一旦您符合PCI标准,了解您可以不在系统中记录哪些信息非常重要:
根据官方PCI合规性文档,以下信息不被视为安全:
&#34;主要帐号是持卡人数据的定义因素。 如果存储了持卡人姓名,服务代码和/或到期日期, 用PAN处理或传输,或以其他方式存在于PAN中 持卡人数据环境,必须按照保护 适用的PCI DSS要求&#34;
PCI DSS要求3.3和3.4仅适用于PAN。如果存储了PAN 与持卡人数据的其他元素一起,只需要呈现PAN 根据PCI DSS要求3.4不可读。
答案 2 :(得分:0)
您可以使用html5模式来实现此目的。
美国运通:
[0-9]{4} *[0-9]{6} *[0-9]{5}
信用卡
[0-9]{13,16}
大来俱乐部
^([30|36|38]{2})([0-9]{12})$
就这样使用它,
pattern="[0-9]{13,16}"