在扫描支票并从该扫描中生成MICR代码之后,除了计算位数之外,还可以对该代码进行哪些检查,以获得其有效性或至少内部一致性的信心?
我已经知道MICR代码是支票帐户所属的9位路由号码。但是有没有别的办法可以检查一下呢?它是否遵循任何模式,如果有任何数字被错误读取,它可能会给出提示?
例如,这段代码只是简单地检查9位数字(我使用的是C#,但答案使用什么语言并不重要):
‘C# Regex regex = new Regex(@"^0-9{9}$");
我希望答案是真的或假的。然后,我可以推导出适当的错误描述。
发布于 2020-12-02 20:53:22
您需要参考MICR规范,以便正确验证MICR读取是否有效。请访问此处:MICR Basics Handbook
这里有几个屏幕截图,可以帮助你解析MICR的各个部分:


否则,您可以查看一个商业库,该库可以为您处理此问题,并保持与规范保持同步。我工作的公司有一个这样的库,您可以在这里查看:https://www.leadtools.com/sdk/ocr/micr具体地说,您可以使用高级BankCheckReader类,它能够在任何页面上找到E13b和Cmc7 micr字体类型中的MICR行。
下面是一些用C#编写的示例代码,但这个类也可以用java和其他语言编写:
BankCheckReader checkReader = new BankCheckReader();
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD);
ocrEngine.Startup(null, null, null, null);
checkReader.OcrEngine = ocrEngine;
checkReader.MicrFontType = BankCheckMicrFontType.E13b;
checkReader.ProcessImage(image); https://stackoverflow.com/questions/56940305
复制相似问题