javascript和php中的pancard结构验证


pancard structure validation in javascript and php also

我只想用javascript进行pancard验证。

仅限于印度。

印度的评议会结构如下。。例如:AAAAA 9999A

  • 前五个字符是字母(A-Z)
  • 接下来的4个数字(0-9)
  • 最后一个字符字母(A-Z)

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

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

  • C——公司
  • P——人
  • H——印度教无隔膜家庭(HUF)
  • F——公司
  • A——人员协会(AOP)
  • T-AOP(信任)
  • B——个人团体(BOI)
  • L——地方当局
  • J——法人
  • G——政府

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

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

所以我创建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

但对我不起作用。

我更感激你的帮助。

提前感谢。

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

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
}

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

解释

  1. ([a-zA-Z]){5}->字母表的数字应该是5。

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

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

尝试这个代码,它也会按照@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>

希望效果良好…:)

好吧,使用HTML5,您不必编写任何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/>

享受吧!!

请尝试以下代码。

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();">

对于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;
    }
}

我在这里有我的工作脚本来验证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 !";
            }
       }

现在在文本框的关键事件上调用此功能

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

使用以下代码:

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>

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

Pan Card的格式:例如E0123F

    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
}

按提供使用:

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>";
}
<html>
<form name="myForm" action="/action_page.php" onsubmit="return ValidatePANsubmit(pancard)" method="post">
<input type="text" name="name" id="name" MaxLength="50" placeholder="Full Name">
<br><br>
<input type="text" name="pancard" id="pancard" MaxLength="10" placeholder="Pan Number" onblur="ValidatePAN(this);">
 <input type="submit" value="Submit">
 </form>
</html>
<script>
function ValidatePAN(pancard) {  
 
if (pancard.value != "") {
            ObjVal = pancard.value;
            ObjValLength = pancard.value.length;
            ObjVal = ObjVal.toUpperCase();
            
            var panPat = /[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[ObjVal[3]];

            if (ObjValLength != 10) 
            {
            alert("PAN Number should be 10 digit !");
// set the value to null - if input id name = pan & form name = myform
//  document.forms['myform'].pan.value = "";
            return false;
            }
  
            if (ObjVal.search(panPat) == -1) {
                alert("Invalid Pan No.");
                pancard.focus();
                return false;
            }
            if(pan!="undefined"){
                alert(pan+" - Pan No. detected - OK");
                                }
            else
            {
                alert("Unknown Pan card No.");
                return false;
            }
                            }
                        }
</script>
  
<script>
function ValidatePANsubmit(pancard) {  
        if (pancard.value != "") {
            ObjVal = pancard.value;
            ObjValLength = pancard.value.length;
            ObjVal = ObjVal.toUpperCase();
            
            
            var ObjValmatch = ObjVal.charAt(4);
//          alert(ObjValmatch);
            nameval = document.getElementById('name').value;
            if (nameval == "")
            {
            alert("Name not Entered !");
            return false;
            }
            var namevalmatch = nameval.match(/'b'w/g) || [];
            namevalmatch = ((namevalmatch.pop() || '')).toUpperCase();
//          alert(namevalmatch);
            
            var panPat = /[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[ObjVal[3]];

            if (ObjValLength != 10) 
            {
            alert("PAN Number should be 10 digit !");
// set the value to null - if input id name = pan & form name = myform
//  document.forms['myform'].pan.value = "";
            return false;
            }
  
            if (ObjVal.search(panPat) == -1) {
                alert("Invalid Pan No.");
                pancard.focus();
                return false;
            }
            
            if (ObjValmatch != namevalmatch) 
            {
            alert("Pan no. 5th Character -- "+ObjValmatch+" -- not match with - Name Title First Character ! -- "+namevalmatch+" --");
// set the value to null - if input id name = pan & form name = myform
//  document.forms['myform'].pan.value = "";
            return false;
            }
            
            
            
            
            if(pan!="undefined"){
//              alert(pan+" - Pan No. detected - OK");
                                }
            else
            {
                alert("Unknown Pan card No.");
                return false;
            }
                            }
            else
            {
            alert("Pan No. not Entered !");
            return false;                   // if pan no. not entered stop submit
            }
                        }
  </script>
const regex = /[A-Z]{3}[PCHFATBLJG]{1}[A-Z]{1}[0-9]{4}[A-Z]{1}$/;
  • 第1至第3个字符-大写字母
  • 其中一个PCHFATBLJG的第4个字符字母表
  • 第5个字符-大写字母
  • 第7至第9位-数字
  • 第10个字符-大写字母

第4个字符定义

const fullForm = {C:"Company", P:"Personal", H:"Hindu Undivided Family (HUF)", F:"Firm/LLP", A:"Association of Persons (AOP)", T:"AOP (Trust)", B:"Body of Individuals (BOI)", L:"Local Authority", J:"Artificial Juridical Person", G:"Govt"};
function IsValidNumaricValue(String){
    let numberRegex = /^[+-]?'d+('.'d+)?([eE][+-]?'d+)?$/;
    if(numberRegex.test(String)) {
      return true;
    } else {
      return false;
    }  
}
function IsValidLatter(ch){
    return /^[A-Z]$/i.test(ch);
}
function IsValidPanNumber(panNumber) {
    const regex = /[A-Z]{5}[0-9]{4}[A-Z]{1}/;   
    if (panNumber.length != 10 ) { return false; }  
    if (regex.test(panNumber) == false) { return false }
    const charArray = panNumber.split('');
    var IsValidPan = true;
    charArray.forEach((CharOrNumber, index)=>{
        if(index < 5){
            if(IsValidLatter(CharOrNumber) == false){
                IsValidPan = false;
            }
        } else if (index > 4 && index < 9){
            if(IsValidNumaricValue(CharOrNumber) == false){
                IsValidPan = false;
            }
        } else if(index == 9){
            if(IsValidLatter(CharOrNumber) == false){
                IsValidPan = false;
            }
        }
    });
    return IsValidPan;
}