小規模なアプリケーションの国民 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 を使用してこれを検証するにはどうすればよいですか? これを検証するために正規表現を使用できますか?
小規模なアプリケーションの国民 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 を使用してこれを検証するにはどうすればよいですか? これを検証するために正規表現を使用できますか?
次のように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
}
あなたはこれを試すことができます
if ((ID.Count(char.IsDigit) == 9) && (ID.EndsWith("X") || ID.EndsWith("V")) &&
(ID[2] != '4' && ID[2] != '9')))
{
//Valid
}
else
{
//invalid
}
このための正規表現を作成する方法を説明しますが、実際には作成しません。
空白の正規表現から始めます。
-------------
最後に「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)
**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();
});