2

小規模なアプリケーションの国民 ID カード番号を検証したいです。

There are only 9 digits
there is a letter at the end 'x' or 'v' (both capital and simple letters)
3rd digit can not be equal to 4 or 9

Visual Studio 2010 を使用してこれを検証するにはどうすればよいですか? これを検証するために正規表現を使用できますか?

4

7 に答える 7

4

次のようにREGEXなしでそれを行うことができます:

string str = "124456789X";
if ((str.Count(char.IsDigit) == 9) && // only 9 digits
    (str.EndsWith("X", StringComparison.OrdinalIgnoreCase)
     || str.EndsWith("V", StringComparison.OrdinalIgnoreCase)) && //a letter at the end 'x' or 'v'
    (str[2] != '4' && str[2] != '9')) //3rd digit can not be equal to 4 or 9
{
    //Valid

}
else
{
    //invalid
}
于 2013-05-03T05:08:12.633 に答える
1

あなたはこれを試すことができます

 if ((ID.Count(char.IsDigit) == 9) && (ID.EndsWith("X") || ID.EndsWith("V")) && 
    (ID[2] != '4' && ID[2] != '9'))) 
                {
                    //Valid

                }
                else
                {
                    //invalid
                }
于 2013-05-03T05:14:06.880 に答える
0

このための正規表現を作成する方法を説明しますが、実際には作成しません。
空白の正規表現から始めます。

-------------

最後に「X」または「V」が必要です

------(X or V)

先頭二桁

(2 digits)--------(X or V)

4桁または9桁以外

(2 digits)(digit not 4 or 9)-----(X or V)

あと6桁

(2 digits)(digit not 4 or 9)(6 digits)(X or V)
于 2013-05-03T05:09:13.020 に答える
0
**Sri Lankan NIC Validation**

$("input[name='number']").on('keydown', function(e) {
    var key = e.keyCode ? e.keyCode : e.which;
    //alert(key);
    if (!([8, 9, 13, 27, 46, 110, 190,17, 88, 89].indexOf(key) !== -1 ||
            (key == 65 && (e.ctrlKey || e.metaKey)) ||
            (key >= 35 && key <= 40) ||
            (key >= 48 && key <= 57 && !(e.shiftKey || e.altKey)) ||
            (key >= 96 && key <= 105)
        )) e.preventDefault();

});
于 2020-06-04T09:16:39.753 に答える