信用卡表格html值长度

时间:2015-09-01 17:09:46

标签: javascript jquery html forms credit-card

我尝试了很多例子,但仍然无法找到解决问题的好方法。

如果我使用文本字段,那么我的应用会裁剪最后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);
    });

3 个答案:

答案 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)

&#13;
&#13;
var txt = '1234 1234 4564 1';
txt = txt.replace(/\s/g,'');
var valid = txt.match(/([0-9]{16})/g);
if(valid){
     //submit form
}
&#13;
&#13;
&#13;

注意

存储信用卡信息不违法;但是,强烈建议不要这样做,因为您可以对发生的任何损害负责。

首先要做的事情是符合PCI标准https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1.pdf

一旦您符合PCI标准,了解您可以在系统中记录哪些信息非常重要:

  • 完整的跟踪数据(磁条数据或芯片上的等效数据)
  • CAV2 / CVC2 / CVV2 / CID
  • PIN / PIN块

根据官方PCI合规性文档,以下信息不被视为安全:

  • 主要帐号(PAN)
  • 持卡人姓名
  • 到期日期
  • 服务代码
  

&#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}"