nz - ird - 验证器
新西兰税号验证器(IRD)
安装
npm install --save @fnzc/nz-ird-validator
或者说
yarn add @fnzc/nz-ird-validator
使用量
函数需要一个字符串参数 :
- IRD 编号( 正常或破损格式) 返回布尔值 .
var irdValidator = require('@fnzc/nz-ird-validator');
irdValidator.isValidIRDNumber('000-000-000');
允许您指定是否需要破折号 / 不需要破折号 - 默认为不可知( “ 或 ” ) .
validator.configureValidator({requireFormat: 'dashes'})('123-123-123')
算法
该算法基于内地税收局2016年3月31日发布的"非居民持有税和居民持有税规格文件".
IR 编号验证 - modulus 11 位数检查
内地税务局使用的IRD编号格式是一个由下列部分组成的八到九位数字:
- 七到八位数基数
- 后面的检查数字
检查数字验证
将采取以下步骤:
- 检查有效范围
- 如果IRD编号为 < 10-000-000或 > 150-000-000,则该编号无效。 这一步骤确保IRD的号码在已经发布的范围内,或在未来10年中有望发布的范围之内.
- 形成八位数基数
- 删除后面的检查数字 .
- 如果产生的数字是七位数长,则通过添加正0来将数字加到八位数.
- 计算检查数字
- 每个基数的八位数都有一个权重系数。 从左到右分别为:3,2,7,6,5,4,3,2.
- 将加权系数及其相关数字的产物相加.
- 除以11。 如果剩下的是0,那么计算出的支票数字是0.
- 如果其余的不是0,则从11起减去所余,并算出数字.
- 如果计算出的检查数字在0到9之间,则去第5步.
- 如果计算出的检查数字为10,则继续第4步.
- 重新计算检查数字
- 每个基数的八位数都有一个次要加权系数。 从左到右分别是:7,4,3,2,5,2,7,6.
- 将加权系数及其相关数字的产物相加.
- 除以11。 如果剩下的是0,那么计算出的支票数字是0.
- 如果其余的不是0,则从11起减去所余,并给出所计算的00位支票数字.
- 如果计算出的检查数字为10,IRD号码无效. 5. 比较支票数字:
- 将计算出的检查数字与原始IRD数字的最后数字相比较.
- 如果匹配,IRD号码有效.
更改日志
捐款
欢迎拉动请求.