使用 java 验证银行帐号

Bank Account number verification using java

我正在尝试编写一个 java 程序来验证阿尔及利亚银行帐号的有效性,我正在网上查看公式,然后我找到了一段 java 脚本(我无法理解)。

代码如下:

function validateFormRIB() {
  var x = document.forms["formrib"]["rib"].value;
  if ((!/^\d+$/.test(x))||(x.length!=20)) {
    alert("Le RIB doit comporter exactement 20 caractères numériques");
    return false;
  }
}

我的问题是计算公式是什么?

这是网页的link: http://www.babalweb.net/finance/verificateur-rib-releve-identite-bancaire-algerie.php

你指的“公式”是(我推测的)这部分

(!/^\d+$/.test(x))||(x.length!=20)

它有两部分:

(!/^\d+$/.test(x))

(x.length!=20)

第一部分是模式匹配。它测试变量 x 中的字符串是否与正则表达式 /^\d+$/ 匹配。该正则表达式表示

/    # start of regular expression
^    # match the start of the string
\d   # match one digit
+    # the previous pattern is matched one or more times
$    # match the end of the string
/    # end of regular expression.

换句话说,“匹配一个由一位或多位数字组成的字符串”。

第二部分是测试字符串长度。

在上下文中将它们放在一起:

IF variable 'x' does not consist of one or more digits 
OR IF it does not have a length of 20
THEN show and 'alert' popup and return false.

验证“公式”很容易翻译成Java ...或任何其他支持正则表达式的语言。

但是,很明显并不是每个 20 位数字实际上都是 真实 阿尔及利亚银行帐号。

(值得一提的是,国际银行帐号 (IBAN) 上的维基百科页面有许多国家/地区的 summary 格式。但它没有说明更多有关阿尔及利亚银行号码的信息除了它们是 20 位数字。)