我需要先验证澳大利亚商业号码格式,然后再将其提交到服务器进行验证。似乎有针对web/js的解决方案,但没有用 Java 编写的。请注意,我不需要验证 ABN 是否存在,只需验证格式即可。
经过一番研究,我找不到基于 Java 的简单解决方案。所以,我根据来自clearwater.com.au的信息创建了自己的
我已经重新打印了规则,以防链接消失。
static final int[] weighting = {10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
// A fully trimmed ABN must be used.
public static boolean validABN(String abn) {
if (isNumeric(abn)) {
if (abn.length() == 11) {
int checksum = 0;
for (int i = 0; i < abn.length(); i++) {
int posValue = Character.digit(abn.charAt(i), 10);
// subtract 1 from first digit only
if (i == 0) {
posValue--;
}
// calculate value with position weighting
checksum += posValue * weighting[i];
}
return checksum % 89 == 0;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |