想要一个正则表达式来验证印度车辆号码格式吗?

问题描述 投票:0回答:13

大家好……

我需要建立一个与车辆登记相关的摆动应用程序,我想在其中输入印度标准的车辆号码,例如:

MP 09 AB 1234

啊 17 英尺 2387

UT 32 DR 6423

DL 01 C AA 1111

更具体地说,

请问有人可以帮助我吗?

DocumentFilter
打字班也可以帮助我.........

java regex validation
13个回答
47
投票

基于维基百科规范

^[A-Z]{2}[ -][0-9]{1,2}(?: [A-Z])?(?: [A-Z]*)? [0-9]{4}$
  • 车牌的前两个字母代表车辆注册的州。
  • 接下来的两位数字是分区的序号。由于车辆登记量很大,这些号码也被提供给 RTO 登记办公室。
  • 第三部分是每个车牌唯一的 4 位数字。当 4 位数字用完时,会在前面加上一个字母,然后是两个字母,依此类推。
  • 在某些邦(例如德里联邦直辖区,以及之前的古吉拉特邦和比哈尔邦),区号的开头 0 被省略;因此德里区 2 号码显示为 DL 2 而不是 DL 02。
  • 德里国家首都辖区注册码中多了一个代码:DL 01 C AA 1111

13
投票

试试这个

^[A-Z]{2}\s[0-9]{2}\s[A-Z]{2}\s[0-9]{4}$

^
表示字符串的开头
[A-Z]{2}
表示 A 到 Z 范围内的 2 个字符
\s
表示空白
[0-9]{2}
表示 0 到 9 范围内的 2 个字符
\s
表示空白
[A-Z]{2}
表示 A 到 Z 范围内的 2 个字符
\s
表示空白
[0-9]{4}
表示 0 到 9 范围内的 4 个字符
$
表示字符串结束

根据您在问题中所说的内容,这应该是对正确格式的非常广泛的检查,但我有一种感觉,关于车牌的编号方式有更具体的规定。让我知道正则表达式是否有其他限制。


6
投票

印度车辆号码如下:

GJ 01 AA 1234 KA 08 J 9192 (新巴拉特系列) 类似22 BH 1234 AB 22 BH 1234 A

您可以使用这 2 个正则表达式进行验证:

1) ^[A-Z]{2}[0-9]{2}[A-HJ-NP-Z]{1,2}[0-9]{4}$
2) ^[0-9]{2}BH[0-9]{4}[A-HJ-NP-Z]{1,2}$

根据 RTO 规则:

在 RTO 系列字母“I”和“O”中,排除 2 以避免与数字 0 或 1 混淆。


5
投票

如果您正在寻找车牌(VRN),请使用以下正则表达式

^[A-Z|a-z]{2}\s?[0-9]{1,2}\s?[A-Z|a-z]{0,3}\s?[0-9]{4}$

2
投票
^[A-Z]{2} [0-9]{2} [A-Z]{2} [0-9]{4}$

参见 http://en.wikipedia.org/wiki/Vehicle_registration_plates_of_India

看起来格式比您问题中所述的要复杂一些......


2
投票
AP-05-BJ-9353
TN-35-AB-638
MH-03-C-3843

表情:

^[A-Z]{2}[-][0-9]{1,2}[-][A-Z]{1,2}[-][0-9]{3,4}$

在此处检查表达式:https://regexr.com/


0
投票

只需检查一下是否有空格...

  function isValidNumber($Number){
         $pattern = "^[a-zA-z]{2}\s[0-9]{2}\s[0-9]{4}$";
         if (eregi($pattern, $Number)){
            return true;
         }
         else {
            return false;
        }
    }

0
投票

例如,如果用户已经输入了如下值:

DL 

然后文本框除了整数或一个字符之外不接受下一个输入......

DL C 

从这里用户只能输入整数值............

所以,简而言之,我想做的就是仅像 Alix 给出的正则表达式那样获取输入

基于维基百科规格

^[A-Z]{2}[ -][0-9]{1,2}(?: [A-Z])?(?: [A-Z]*)? [0-9]{4}$

0
投票

-(BOOL) validateVehicleRegNumber:(NSString *)strNumber { //示例MH14DA8904

    NSString *validReg = @"[A-Z]{2}[0-9]{2}[A-Z]{2}[0-9]{4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", validReg];
    return [emailTest evaluateWithObject:strNumber];

}


0
投票
^[A-Z]{2}\s[0-9]{1,2}\s[A-Z]{1,2}\s[0-9]{1,4}$ 

上述正则表达式适用于以下类型

DL 01 AA 1111

DL 0 AA 1111

DL 1 A 1111

DL 0 A 11

DL 01 AA 111


0
投票
//DL 01 C AA 1234
^[A-Z]{2}[ -]{0,1}[0-9]{2}[ -]{0,1}(?:[A-Z])[ -]{0,1}[A-Z]{1,2}[ -]{0,1}[0-9]{1,4}$

//MH 15 AA 1234
^[A-Z]{2}[ -]{0,1}[0-9]{2}[ -]{0,1}[A-Z]{1,2}[ -]{0,1}[0-9]{1,4}$

MVA 1234
^[A-Z]{3}[ -]{0,1}[0-9]{1,4}$

//MH 15 8008
^[A-Z]{2}[ -]{0,1}[0-9]{2}[ -]{0,1}[0-9]{1,4}$

有或没有空格:)


0
投票

如果您要在子字符串中查找车牌号,请使用以下正则表达式

.*?([A-Za-z]{2})(\d{2})([A-Za-z]{2})(\d{4}).*?

0
投票

如果您尝试按州 RTO 验证号码和按 Central 验证号码(BH 系列) 试试这个:

    public static boolean validateNumberPlate(EditText numberPlate){
    final Pattern pattern1 = Pattern.compile("^[A-Z]{2}[\\\\ -]{0,1}[0-9]{2}[\\\\ -]{0,1}[A-HJ-NP-Z]{1,2}[\\\\ -]{0,1}[0-9]{4}$");   // for all states
    final Pattern pattern2 = Pattern.compile("^[0-9]{2}[\\\\ -]{0,1}BH[\\\\ -]{0,1}[0-9]{4}[\\\\ -]{0,1}[A-HJ-NP-Z]{1,2}$");   // for BH Series

    return (pattern1.matcher(numberPlate.getText().toString().trim()).matches() || pattern2.matcher(numberPlate.getText().toString().trim()).matches());
}

第一个模式适用于州 RTO(例如 RJ 00 XX 0000)。

第二种模式适用于 BH 系列(例如 00 BH 0000 XX)。

© www.soinside.com 2019 - 2024. All rights reserved.