我只想用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
}
您必须限制字符在给定字符串中出现的时间。
解释
([a-zA-Z]){5}->字母表的数字应该是5。
([0-9]){4}->数字应为4。
([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(/bw/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;
}