public bool CheckROCID(string idNo)
    if (idNo == null)
        return false;
    idNo = idNo.ToUpper();
    Regex regex = new Regex(@"^([A-Z])([1-2]\d{8})$");
    Match match = regex.Match(idNo);
    if (!match.Success)
        return false;

    ///A=10 B=11 C=12 D=13 E=14 F=15 G=16 H=17 J=18 K=19 L=20 M=21 N=22
    ///P=23 Q=24 R=25 S=26 T=27 U=28 V=29 X=30 Y=31 W=32  Z=33 I=34 O=35 
    string transferIdNo = $"{(alphabet.IndexOf(match.Groups[1].Value) + 10)}" +
    int[] idNoArray = transferIdNo.ToCharArray()
                                  .Select(c => Convert.ToInt32(c.ToString()))
    int sum = idNoArray[0];
    int[] weight = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 1 };
    for (int i = 0; i < weight.Length; i++)
        sum += weight[i] * idNoArray[i + 1];
    return (sum % 10 == 0);



創用 CC 授權條款
本著作由Chenting Weng製作,以創用CC 姓名標示 4.0 國際 授權條款釋出。
This work by Chenting Weng is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at https://dotblogs.com.tw/chentingw.


Part of the content of the article will refer to the profile or picture of other websites.
If there is any infringement of your copyright, please leave a message and let me remove it as soon as possible.
Disclaimer:The article is for personal use and is for reference only. I will not bear any responsibility for any loss caused by quoting the article. If there is an error, please leave a message to inform.