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