javascript 和 php 中的 pancard 结构验证也

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/37251151/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 20:04:57  来源:igfitidea点击:

pancard structure validation in javascript and php also

javascriptphp

提问by satyawan

i want to do pancard validation in javascript only.

我只想在 javascript 中进行 pancard 验证。

Its limited to india only.

它仅限于印度。

the structure of pancard in India is as follows.. for example : AAAAA9999A

印度pancard的结构如下..例如:AAAAA9999A

  • First five characters are letters (A-Z),
  • next 4 numerics (0-9),
  • last character letter (A-Z)
  • 前五个字符是字母 (AZ),
  • 接下来的 4 个数字 (0-9),
  • 最后一个字符字母 (AZ)

Each deductee is uniquely identified by the PAN If the PAN does not follow the above structure, then the PAN will be shown invalid

每个被扣减者都由 PAN 唯一标识 如果 PAN 不遵循上述结构,则 PAN 将显示为无效

The fourth character of the PAN must be one of the following, depending on the type of assessee:

PAN 的第四个字符必须是以下之一,具体取决于被评估者的类型:

  • C — Company
  • P — Person
  • H — Hindu Undivided Family (HUF)
  • F — Firm
  • A — Association of Persons (AOP)
  • T — AOP (Trust)
  • B — Body of Individuals (BOI)
  • L — Local Authority
  • J — Artificial Juridical Person
  • G — Govt
  • C — 公司
  • P - 人
  • H - 印度教不分家庭 (HUF)
  • F——公司
  • A — 个人协会 (AOP)
  • T——AOP(信任)
  • B - 个人团体 (BOI)
  • L——地方当局
  • J——人工法人
  • G——政府

The fifth character of the PAN is the first character in the surname of the person to whom the PAN belongs.

PAN 的第五个字符是 PAN 所属人姓氏的第一个字符。

so i want of check first five letters are alphabetic then follow by four letter numeric and last one is alphabetic.

所以我想检查前五个字母是字母,然后是四个字母数字,最后一个是字母。

so i create javascript as follow.

所以我创建 javascript 如下。

var panVal = $('#panNumber').val);
 var regpan = /^([a-zA-Z])([0-9])([a-zA-Z])?$/;
if(regpan.test(panVal)){
   // valid pan card number
}else // invalid pan card number

but its not working for me.

但它不适合我。

help is more appreciated for me.

对我来说,帮助更受赞赏。

Thank in advance.

预先感谢。

回答by Arun

There is a logical error in your code. Try the below code:

您的代码中存在逻辑错误。试试下面的代码:

var panVal = $('#panNumber').val();
var regpan = /^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/;

if(regpan.test(panVal)){
   // valid pan card number
} else {
   // invalid pan card number
}

You have to limit the characters for how many time they have to occur in the given string.

您必须限制字符在给定字符串中出现的次数。

Explanation

解释

  1. ([a-zA-Z]){5}-> Alphabets should be 5 in number.

  2. ([0-9]){4}-> Numbers should be 4 in number.

  3. ([a-zA-Z]){1}-> Alphabets should be 1 in number.

  1. ([a-zA-Z]){5}-> 字母数字应为 5。

  2. ([0-9]){4}-> 数字应该是 4。

  3. ([a-zA-Z]){1}-> 字母数字应为 1。

回答by Manav Akela

Try this code it also tells about card type as asked by @RJParikh

试试这个代码它也告诉@RJParikh询问的卡片类型

function pan(txt)
{
 txt = txt.toUpperCase();
 var regex = /[a-zA-Z]{3}[PCHFATBLJG]{1}[a-zA-Z]{1}[0-9]{4}[a-zA-Z]{1}$/;
    var pan = {C:"Company", P:"Personal", H:"Hindu Undivided Family (HUF)", F:"Firm", A:"Association of Persons (AOP)", T:"AOP (Trust)", B:"Body of Individuals (BOI)", L:"Local Authority", J:"Artificial Juridical Person", G:"Govt"};
    pan=pan[txt[3]];
 if(regex.test(txt))
 {
    if(pan!="undefined")
      alert(pan+" card detected");
    else
   alert("Unknown card");
    }
    else
   alert("Unknown card");
}
<input id="pan">
<button onclick="pan(document.getElementById('pan').value)">search</button>

Hope it works well... :)

希望它运作良好... :)

回答by Umesh Patil

Well, with HTML 5 you don't have to write any javascript to add validation, at least for this PAN validation, use below input tag for this,

好吧,使用 HTML 5,您不必编写任何 javascript 来添加验证,至少对于此 PAN 验证,请为此使用以下输入标签,

<input type="text" id="pan_no" name="pan_no" placeholder="PAN No." maxlength="10" pattern="[a-zA-Z]{5}[0-9]{4}[a-zA-Z]{1}" title="Please enter valid PAN number. E.g. AAAAA9999A" required/>

Enjoy!!

享受!!

回答by sagar varade

For JavaScript you can use

对于 JavaScript,您可以使用

function validatePAN(panVal){
    var regpan = /^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/;
    if(regpan.test(panVal)){
        return true;
    } else {
        return false;
    }
}

回答by RJParikh

Try below code.

试试下面的代码。

function ValidatePAN() { 
  var Obj = document.getElementById("textPanNo");
        if (Obj.value != "") {
            ObjVal = Obj.value;
            var panPat = /^([a-zA-Z]{5})(\d{4})([a-zA-Z]{1})$/;
            if (ObjVal.search(panPat) == -1) {
                alert("Invalid Pan No");
                Obj.focus();
                return false;
            }
          else
            {
              alert("Correct Pan No");
              }
        }
  } 
<input type="text" ID="textPanNo" MaxLength="10" onblur="ValidatePAN(this);">
<input type="button" value="Check" onclick="ValidatePAN();">

回答by Bindesh Pandya

I have my working script here to validate Pan Number, I think it should help you.

我在这里有我的工作脚本来验证 Pan Number,我认为它应该对您有所帮助。

    function validatePanNumber(panNum)
         {

           var regpan = /^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/;

           if(regpan.test(panNum) == false)
           {

              document.getElementById("status").innerHTML = "Permanent Account Number is not yet valid.";

           }
           else
            {

            document.getElementById("status").innerHTML = "You have entered a valid Permanent Account Number !";

            }
       }

Now Call this function on key event of text box

现在在文本框的按键事件上调用这个函数

  <input type="text" name="panNum" onkeyup="validatePanNumber(this.value);"> 

回答by ANKITA VILAS BODHANKAR

Use the following code:

使用以下代码:

function pan_validate(pan) {
  var regpan = /^([A-Z]){5}([0-9]){4}([A-Z]){1}?$/;
  if (regpan.test(pan) == false) {
    document.getElementById("status").innerHTML = "PAN Number Not Valid.";
  } else {
    document.getElementById("status").innerHTML = "";
  }
}
<input type="text" class="form-control input_capital" MaxLength="10" onkeyup="pan_validate(this.value);" placeholder="Please Enter Pan Card" name="pancard" autocomplete="off">
<b style="color:red"><span id="status"></span></b>

回答by kishan verma

As per Income Tax Act, the guidelines for PAN Card are as follows:

Format For Pan Card : Eg. ABCDE0123F

根据《所得税法》,PAN 卡的指南如下:

泛卡的格式:例如。ABCDE0123F

    var panVal = $('ABCDE0123F').val();

    var vali = /^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/;
if(vali.test(panVal)){

   // valid pan card number

} else {

   // invalid pan card number
}

回答by Pawan Rathore

Use as provided:

按规定使用:

if(!empty($_POST["panNumber"]) && $_POST["panNumber"] != "" ){

    $panNumber = $_POST["panNumber"];
    if (!preg_match('/^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/',$_POST["panNumber"])) {
        $err .= "Only 11 digit pin code are allowed which containes 5 Charactor, 4 alphabate & 1 charctor in <strong> PAN NUMBER </strong>"."<br>";
    }else{
        $panNumber = $_POST["panNumber"];
    }       
}else{
    $err .= "Please Enter your PAN CARD number"."<br>";
}