印度GST号码的正则表达是什么?您可以从https://cleartax.in/s/know-your-gstin了解有关GST数字的更多信息 在摘要级别,数字表示为
答案 0 :(得分:24)
以下是GSTIN的正则表达式和校验和验证
\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}
格式详情
以下是使用js中的校验和验证/验证gstin编号的代码
function checksum(g){
let a=65,b=55,c=36;
return Array['from'](g).reduce((i,j,k,g)=>{
p=(p=(j.charCodeAt(0)<a?parseInt(j):j.charCodeAt(0)-b)*(k%2+1))>c?1+(p-c):p;
return k<14?i+p:j==((c=(c-(i%c)))<10?c:String.fromCharCode(c+b));
},0);
}
console.log(checksum('27AAPFU0939F1ZV'))
console.log(checksum('27AASCS2460H1Z0'))
console.log(checksum('29AAGCB7383J1Z4'))
&#13;
答案 1 :(得分:13)
这是我想出的正则表达式:
/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/
根据H&R Block India GSTIN guide,第13个'数字'(实体代码)是“字母数字(首先是1-9,然后是A-Z)”。也就是说,不允许为零,A-Z代表10-35。因此,[1-9A-Z]
比[0-9]
更准确。
最后一位数字“校验位”确实是字母数字:[0-9A-Z]
。我通过获取和测试实际的GSTIN来独立确认。
答案 2 :(得分:7)
GSTIN的正确验证应为
^([0][1-9]|[1-2][0-9]|[3][0-5])([a-zA-Z]{5}[0-9]{4}[a-zA-Z]{1}[1-9a-zA-Z]{1}[zZ]{1}[0-9a-zA-Z]{1})+$
前两位数字表示“土地区域代码清单”中定义的“国家代码”(01-35)(2011年印度人口普查 - link)
接下来的10个字符与AAAAA9999X格式的PAN编号有关。
第13个字符表示实体在同一PAN状态下的注册数。
第14个字符目前默认为“Z”
第15个字符是校验和数字
这种正则表达式适用于大写和小写。
答案 3 :(得分:4)
要添加上述答案,此答案还提供校验和数字的代码段
public static final String GSTINFORMAT_REGEX = "[0-9]{2}[a-zA-Z]{5}[0-9]{4}[a-zA-Z]{1}[1-9A-Za-z]{1}[Z]{1}[0-9a-zA-Z]{1}";
public static final String GSTN_CODEPOINT_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static String getGSTINWithCheckDigit(String gstinWOCheckDigit) throws Exception {
int factor = 2;
int sum = 0;
int checkCodePoint = 0;
char[] cpChars;
char[] inputChars;
try {
if (gstinWOCheckDigit == null) {
throw new Exception("GSTIN supplied for checkdigit calculation is null");
}
cpChars = GSTN_CODEPOINT_CHARS.toCharArray();
inputChars = gstinWOCheckDigit.trim().toUpperCase().toCharArray();
int mod = cpChars.length;
for (int i = inputChars.length - 1; i >= 0; i--) {
int codePoint = -1;
for (int j = 0; j < cpChars.length; j++) {
if (cpChars[j] == inputChars[i]) {
codePoint = j;
}
}
int digit = factor * codePoint;
factor = (factor == 2) ? 1 : 2;
digit = (digit / mod) + (digit % mod);
sum += digit;
}
checkCodePoint = (mod - (sum % mod)) % mod;
return gstinWOCheckDigit + cpChars[checkCodePoint];
} finally {
inputChars = null;
cpChars = null;
}
}
答案 4 :(得分:2)
我使用了这个并且对抗 30+ GSTIN 并且它完美无瑕。
.babelrc
最后检查数字在我遇到的一些GSTIN中似乎也是字母数字。
答案 5 :(得分:2)
试试这个。 它按照GSTIN工作。
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
答案 6 :(得分:2)
使用jQuery尝试这个
[^"]
&#13;
UPDATE collection SET field = 'foo' WHERE field = 'bar';
&#13;
答案 7 :(得分:2)
regex
的正确GSTIN
如下
^([0][1-9]|[1-2][0-9]|[3][0-7])([A-Z]{5})([0-9]{4})([A-Z]{1}[1-9A-Z]{1})([Z]{1})([0-9A-Z]{1})+$
上述内容已经适用于300多名有效纳税人,您可以通过此link
进行验证答案 8 :(得分:1)
这是 100% 准确的 GSTIN 正则表达式,因为它会检查上图中提到的所有内容。
[0-9]{2}[A-Z]{3}[ABCFGHLJPTF]{1}[A-Z]{1}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}
答案 9 :(得分:1)
正则表达式应该是:
/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[0-9]{1}Z[0-9]{1}/
答案 10 :(得分:1)
正确的正则表达式可能是:
/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[0-9]{1}Z[0-9]{1}?$/
它对我有用。
答案 11 :(得分:0)
正确的GSTIN验证将涵盖印度的37个州,
{{1}}
答案 12 :(得分:0)
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1"
ValidationExpression="[0-9]{2}[(a-z)(A-Z)]{5}\d{4}[(a-z)(A-Z)]{1}\d{1}Z\d{1}"
SetFocusOnError="true"
ControlToValidate="txtGST"
Display="Dynamic"
runat="server"
ErrorMessage="Invalid GST No."
ValidationGroup="Add"
ForeColor="Red"></asp:RegularExpressionValidator>
答案 13 :(得分:0)
如果要使用节点库,可以使用https://npmjs.org/gstin-validator
var validator = require('gstin-validator');
validator.isValidGSTNumber('12AAACI1681G1Z0'); //returns boolean value.
validator.ValidateGSTIN('47AAACI1681G1Z0'); // returns a response string with Error message
validator.getGSTINInfo('12AAACI1681G1Z0'); // returns metadata for GSTIN based on numbering scheme followed
答案 14 :(得分:0)
这是可以在代码中使用的通用紧凑型正则表达式: ^ \ d {2} \ D {5} \ d {4} \ D \ dZ \ w
用于GSTIN验证的Swift 4代码如下:
class func isValidGSTIN(_ gstin : String)-> Bool {
let gstinRegex = "^\\d{2}\\D{5}\\d{4}\\D\\dZ\\w"
let test = NSPredicate(format: "SELF MATCHES %@", gstinRegex)
return test.evaluate(with: gstin.uppercased())
}
答案 15 :(得分:0)
public static boolean validateGST(CharSequence gst){
if(gst!=null)
return Pattern.matches("\\d{2}[a-zA-Z]{5}\\d{4}[a-zA-Z]
{1}\\d{1}[zZ]{1}[\\da-zA-Z]{1}",gst);
else
return false;
}
答案 16 :(得分:0)
如果您使用yup,请尝试以下代码为我工作
gst_no:Yup.string()
.trim()
.matches(/[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}[1-9A-Z]{1}$/ , 'Is not in correct format')
.required(),
输入:21LKJLK1235M22