Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 匹配身份证号码和序列号的正则表达式(2个字母)_Javascript_C#_Regex - Fatal编程技术网

Javascript 匹配身份证号码和序列号的正则表达式(2个字母)

Javascript 匹配身份证号码和序列号的正则表达式(2个字母),javascript,c#,regex,Javascript,C#,Regex,我需要一个正则表达式来验证罗马尼亚身份证序列号,如下所示: AX123456。 有两个字母的预定义集合,后跟6位数字。您可以在我的解决方案中找到预定义的两个字母集: ([AX,TR,AR,XC,ZC,MM,XM,XB,XT,BV,ZV,XR,DP,DR,DT,DX,RD,RR,RT,RX,RK,IF,XZ,KL,KX,CJ,KT,KZ,DX,DZ,HD,VN,GL,ZL,GG,MX,MZ,MH,HR,XH,ZH,NT,AS,AZ,PH,PX,KS,VX,SM,KV,SB,OT,SZ,SV,XV,

我需要一个正则表达式来验证罗马尼亚身份证序列号,如下所示:
AX123456
。 有两个字母的预定义集合,后跟6位数字。您可以在我的解决方案中找到预定义的两个字母集:

([AX,TR,AR,XC,ZC,MM,XM,XB,XT,BV,ZV,XR,DP,DR,DT,DX,RD,RR,RT,RX,RK,IF,XZ,KL,KX,CJ,KT,KZ,DX,DZ,HD,VN,GL,ZL,GG,MX,MZ,MH,HR,XH,ZH,NT,AS,AZ,PH,PX,KS,VX,SM,KV,SB,OT,SZ,SV,XV,TM,TZ,DD,GZ,ZS,MS,TC,VS,SX]{2}\d{6})

问题是表达式接受,例如'XA',我特别需要接受'AX',除了方形括号之间的字母组合之外,没有其他字母组合。

可以使用锚来匹配字符串的开头和结尾

目前,您正在使用字符类
[]
,但您可以将替代
|
与非捕获组
(?:
)一起使用,并通过在字符类中对字符进行分组来缩短选项

^(?:A[RSXZ]|BV|CJ|D[DPRTXZ]|G[GLZ]|H[DR]|IF|K[LSTVXZ]|M[HMSXZ]|[NO]T|P[HX]|R[DKRTX]|S[BMVXZ]|T[CMRZ]|V[NSX]|X[BCHMRTVZ]|Z[CHLSV])\d{6}$

谢谢!非常好用!:)@PopaAlin不客气。如果它有助于解决问题,请单击✓ 在答案的左边。请注意,接受一个解决方案会得到2。从15个信誉点你可以回答你认为有用的。谢谢!我不知道你可以这样构建树。为了减少这些类型的正则表达式,你可以通过对前缀AX,AR,AS,AZ=>a[RSXZ]进行排序来构建树,但也可以对barket中的元素进行重新排序以提高可读性。下面是一个关于如何分割数据并重新组织数据的示例。您可以进一步分解具有相同变体的键
N[T]|O[T]
=>
[NO]T
,并删除重复的
D[DPRTXXZ]
具有2个X