0
A
回答
0
试试这个
/// <summary>
/// http://stackoverflow.com/questions/38781957
/// </summary>
public bool IsValidAcn(string acn)
{
int[] weightings = {8, 7, 6, 5, 4, 3, 2, 1};
var accumulatedSum = 0;
acn = acn?.Replace(" ", ""); // strip spaces
if (string.IsNullOrWhiteSpace(acn) || !Regex.IsMatch(acn, @"^\d{9}$"))
{
return false;
}
// Sum the multiplication of all the digits and weights
for (int i = 0; i < weightings.Length; i++)
{
accumulatedSum += Convert.ToInt32(acn.Substring(i, 1)) * weightings[i];
}
var remainder = accumulatedSum % 10;
var expectedCheckDigit = (10 - remainder == 10) ? 0 : (10 - remainder);
var actualCheckDigit = Convert.ToInt32(acn.Substring(8, 1));
return expectedCheckDigit == actualCheckDigit;
}
xUnit的测试,让您的技术领导快乐......
[Theory]
[InlineData("604475587", true)]
[InlineData("00 258 9460", true)]
[InlineData("604475587asdfsf", false)]
[InlineData("444", false)]
[InlineData(null, false)]
public void IsValidAcn(string acn, bool expectedValidity)
{
var sut = GetSystemUnderTest();
Assert.True(sut.IsValidAcn(acn) == expectedValidity);
}
相关问题
- 1. 使用Javascript验证(澳大利亚)电话号码
- 2. jQuery验证澳大利亚电话号码
- 3. 澳大利亚信用卡地址验证系统
- 4. Django澳大利亚本地风味表单验证
- 5. 澳大利亚/墨尔本和澳大利亚/维多利亚州在NodaTime中是如何处理的?
- 6. 您将使用什么规则来验证澳大利亚电话号码?
- 7. Google CDN - 来自澳大利亚
- 8. API为澳大利亚郊区
- 9. 如何纠正澳大利亚
- 10. 在澳大利亚域名主机
- 11. 正则表达式澳大利亚的电话号码为Java
- 12. 失败的验证错误,同时呼吁澳大利亚邮政发货API
- 13. 正则表达式澳大利亚电话号码
- 14. 试图从澳大利亚证券交易所网站表格
- 15. 如何股价从澳大利亚证券交易所取
- 16. C#DateTime.Parse忽略了在澳大利亚的CultureInfo
- 17. google.maps.Geocoder.geocode并不总是返回澳大利亚邮编
- 18. 在澳大利亚项目中使用JodaTime
- 19. 修复澳大利亚/新西兰电话号码的Python正则表达式
- 20. 不同澳大利亚国家的展示时间
- 21. 的Java:解析澳大利亚街道地址
- 22. 澳大利亚邮政API返还的错误费用?
- 23. 美国格式的Excel日期不是澳大利亚
- 24. Facebook的澳大利亚开放图形语言环境
- 25. 熊猫数据阅读器谷歌财务澳大利亚证券交易所
- 26. 澳大利亚DST时区缩写使用date_default_timezone_set时不正确
- 27. 什么是“澳大利亚东部夏季标准时间”
- 28. 将区域更改为(英文)澳大利亚
- 29. 无法在澳大利亚创建Azure SQL数据库
- 30. 澳大利亚邮政跟踪API集成