如何使用正则表达式验证MICR代码?

如何使用正则表达式验证MICR代码?

MICR 代表 磁墨字符识别 。该技术提供交易安全性,确保银行支票的正确性。 MICR代码使支票处理更快,更安全。 MICR技术减少了与支票有关的欺诈活动。磁墨字符识别(MICR)代码的结构:

  1. 它是一个9位数字代码。
  2. 它应该只采用数字形式。
  3. 它不应包含任何特殊字符。

MICR包括3个部分:

  1. 前三位数字指定城市代码。
  2. 接下来的三位数字指定银行代码。
  3. 最后三个数字表示分行代码。

注意 :同样,如果要使用正则表达式验证IFSC代码,请参阅本文 如何使用正则表达式验证IFSC代码

正确的MICR代码示例

输入 :str =“BNZAA2318J”

输出 :false

说明 :因为它包含字母且长度不等于9。

输入 :str1 =“123 @ 3459”

输出 :False

说明: 它具有违反MICR代码属性的唯一字符。

输入 :str2 =“9345268”

输出 :false

说明: 因为它的长度不等于9

输入 :str3 =“934517865”

输出 :true

说明:

其中,

934-表示城市代码

517-表示银行代码

865-表示分行代码

方法

可以使用正则表达式来解决此问题。 Regex将验证输入数据并提供确切的格式。以下是可用于解决问题的步骤:

  • 接受字符串
  • 创建一个正则表达式模式来验证MICR代码,如下所示:

regex =“ ^ [0-9] {1,9} $”

  • 其中,
    • ^:字符串的开头
    • [0-9]:匹配集合中的任何字符
    • {1,9}:匹配前面标记的1到9个字符
    • $:字符串的结尾

下面是实现上述方法的代码:

// C++程序验证
// MICR Code(磁墨字符识别码)的有效性
// 使用正则表达式
 
#include <iostream>
#include <regex>
using namespace std;
 
// 验证MICR Code的函数
bool isValidMICRCode(string mICRCode)
{
 
    // 正则表达式检查是否为
    // 有效的MICR Code。
    const regex pattern("^[0-9]{1,9}$");
 
    // 如果MICR Code为空,则返回false
    if (mICRCode.empty()) {
        return false;
    }
 
    // 如果MICR Code与ReGex匹配,则返回true
    if (regex_match(mICRCode, pattern)) {
        return true;
    }
    else {
        return false;
    }
}
 
// 主函数
int main()
{
    // 测试用例1:
    string str1 = "BNZAA2318J";
    cout << isValidMICRCode(str1) << endl;
 
    // 测试用例2:
    string str2 = "123@3459";
    cout << isValidMICRCode(str2) << endl;
 
    // 测试用例3:
    string str3 = "BNZAA2318JM";
    cout << isValidMICRCode(str3) << endl;
 
    // 测试用例4:
    string str4 = "934517865";
    cout << isValidMICRCode(str4) << endl;
 
    // 测试用例5:
    string str5 = "Rahul 1998";
    cout << isValidMICRCode(str5) << endl;
 
    // 测试用例6:
    string str6 = "654294563";
    cout << isValidMICRCode(str6) << endl;
 
    return 0;
}
// Java程序验证
// MICR Code(磁墨字符识别码)的有效性
// 使用正则表达式
 
import java.util.regex.*;
 
class GFG
{
 
   // 验证MICR Code的函数(仅限于印度)
   public static boolean isValidMICRCode(String MICRCode)
   {
 
       // 正则表达式检查是否为有效的MICR Code
       String regex = "^[0-9]{1,9}$";
 
       // 编译ReGex
       Pattern p = Pattern.compile(regex);
 
       // 如果MICR Code为空,则返回false
       if (MICRCode == null)
       {
           return false;
       }
 
       // Pattern类包含matcher()方法,
       // 使用正则表达式查找匹配的MICR Code。
       Matcher m = p.matcher(MICRCode);
 
       // 如果MICR Code与ReGex匹配,则返回true
       return m.matches();
   }
 
   // 主函数
   public static void main(String args[])
   {
 
       // 测试用例1:
       String str1 = "BNZAA2318J";
       System.out.println(isValidMICRCode(str1));
 
       // 测试用例2:
       String str2 = "123@3459";
       System.out.println(isValidMICRCode(str2));
 
       // 测试用例3:
       String str3 = "BNZAA2318JM";
       System.out.println(isValidMICRCode(str3));
 
       // 测试用例4:
       String str4 = "934517865";
       System.out.println(isValidMICRCode(str4));
 
       // 测试用例5:
       String str5 = "Rahul 1998";
    System.out.println(isValidMICRCode(str5));
      
       // 测试用例6:
       String str6 = "654294563";
       System.out.println(isValidMICRCode(str6));
 
   }
}
# Python3程序,使用正则表达式验证
# MICR代码
import re
 
# 函数验证
# MICR代码(仅适用于印度)
def isValidMICRCode(str):
 
    # 正则表达式检查MICR代码是否有效
    regex = "^[0-9]{1,9}$"
     
    # 编译正则表达式
    p = re.compile(regex)
 
    # 如果字符串为空
    # 返回false
    if (str == None):
        return False
 
    # 如果字符串匹配正则表达式
    # 返回true
    if(re.search(p, str)):
        return True
    else:
        return False
 
# 驱动程序
 
# 测试用例1:
str1 = "BNZAA2318J"
print(isValidMICRCode(str1))
 
# 测试用例2:
str2 = "123@3459"
print(isValidMICRCode(str2))
 
# 测试用例3:
str3 = "Rahul 1998"
print(isValidMICRCode(str3))
 
# 测试用例4:
str4 = "934517865"
print(isValidMICRCode(str4))
 
# 测试用例5:
str5 = "BNZAA2318JM"
print(isValidMICRCode(str5))
 
# 测试用例6:
str6 = "654294563"
print(isValidMICRCode(str6))
 
# 该代码由Rahul Chauhan贡献
// C#程序,使用正则表达式验证MICR代码
using System;
using System.Text.RegularExpressions;
class GFG
{
 
  // 主方法
  static void Main(string[] args)
  {
 
    // 输入字符串来匹配MICR代码
    string[] str={"BNZAA2318J","123@3459" ,
                  "BNZAA2318JM","934517865",
                  "Rahul 1998","654294563"};
    foreach(string s in str) {
      Console.WriteLine( isValidMICRCode(s) ? "true" : "false");
    }
    Console.ReadKey(); }
 
  // 包含正则表达式的方法
  public static bool isValidMICRCode(string str)
  {
    string strRegex = @"^[0-9]{1,9}$";
    Regex re = new Regex(strRegex);
    if (re.IsMatch(str))
      return (true);
    else
      return (false);
  }
}
 
// 该代码由Rahul Chauhan贡献
//JavaScript程序,使用正则表达式验证
//MICR代码
 
//验证
//MICR代码函数 
function isValidMICR_CODE(MICR_CODE) {
    // 正则表达式检查
    // MICR CODE是否合法
    let regex = new RegExp(/^[0-9]{1,9}$/);
 
    // 如果MICR CODE是空的,请返回false
    if (MICR_CODE == null) {
        return "false";
    }
 
    // 如果NUMBERPLATE匹配表达式,则返回true
    if (regex.test(MICR_CODE) == true) {
        return "true";
    }
    else {
        return "false";
    }
}
 
//驱动程序
//测试用例1:
let str1 = "UP 50 BY 1998";
console.log(isValidMICR_CODE(str1));
 
// 测试用例2:
let str2 = "MH 05 DL 9023";
console.log(isValidMICR_CODE(str2));
 
// 测试用例3:
let str3 = "BNZAA2318JM";
console.log(isValidMICR_CODE(str3));
 
// 测试用例4:
let str4 = "MH 05 S 9954";
console.log(isValidMICR_CODE(str4));
// 测试用例5:
let str5 = "934517865";
console.log(isValidMICR_CODE(str5));
 
// 测试用例6:
let str6 = "MH 05 DL 9023";
console.log(isValidMICR_CODE(str6)); 

输出结果

false
false
false
true
false
true

时间复杂度:O(N) 每个测试用例,其中 N 是给定字符串的长度。

辅助空间:O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程