如何在有数字和字母的情况下为NRIC数字进行输入验证?的身份证号码 实施例:S9738275G,S8937231H,S7402343B IC =输入(“输入身份证号:”)对一个输入中的字母和数字的Python输入验证
回答
这可以以很多不同的方式来完成。根据您的应用程序的规模,您可能想要更简单或更复杂的东西。
如果你想要坚如磐石的东西,你可以使用库,如Pygood。
如果你正在寻找中间的东西,你也可以使用正则表达式,在这里看到an example。
如果你想保持尽可能简单,你可以做一个简单的验证,像这样:
str = "B123"
if str[0].isalpha() and not str[1:].isalpha():
# is valid
数字如何?需要输入的字母和数字? 在这种情况下,它将是9,因为'S9738275G'有9个字母数字。 –
试试这个
string = 'S9738275G';
if string.isalnum():
print('It\'s alphanumeric string')
else:
print('It\'s not an alphanumeric string')
为您的使用情况下,这已经足够了:
>>> a = 'A12345678B'
>>> if a[0].isalpha() and a[-1].isalpha() and a[1:-1].isdigit(): print True
...
True
>>> a = 'A12345678'
>>> if a[0].isalpha() and a[-1].isalpha() and a[1:-1].isdigit(): print True
...
>>>
[0]第一个字符,[-1]最后一个字符,[1:-1]第二个字符最后一个字符
编辑:看看PM 2Ring的评论,身份证号码有一个特定的结构和创建检查数字/字符的具体方法,所以我会按照提供的链接中给出的代码。假设你的身份证号码显然是相同的,因为你没有指定它是什么。有趣的是:“计算NRIC校验和的算法是不公开的”Wikipedia
你可以使用'.isdigit',那么你就不需要'try:... except'。 –
@ PM2Ring绝对是真的,但是当我测试它时,我忘了isdigit()中的()并使用int()来代替。只有在我发布之后才意识到我的错字。 –
- 1. 验证输入 - 数字与字母
- 2. 数字输入的输入验证
- 3. 验证用户输入的字母
- 4. 验证输入是ListBox中的一个字母
- 5. 验证文本框中的字母数字输入[VB2010]
- 6. 为字母验证用户输入
- 7. Python输入允许整数和一个字母字符
- 8. 如何找到从输入字母表中的第一个字母和计数输入字母
- 9. Python输入验证 - int在20和100之间,没有字母
- 10. 验证textarea输入的字母数字值
- 11. 批量文件输入验证 - 确保用户输入了一个字母
- 12. 如何验证python中的字符串和整数输入?
- 13. AngularJS - 日期输入和数字输入验证
- 14. 如何验证*第一个*输入的两个字符是字母?
- 15. Python - 如何验证tkinter输入字段
- 16. jQuery的验证输入型数字
- 17. 验证输入字段
- 18. kotlin验证输入字段
- 19. 验证字符串输入
- 20. 如何验证输入只接受12位数字的输入?
- 21. 在JQuery中的输入字段中输入日期验证
- 22. Python中输入验证
- 23. 如何对输入进行验证?号或字母.. C编程
- 24. Python-整数输入,误差用于输入字母
- 25. 如何使用python验证输入中的数字?
- 26. 如何验证输入是否只有Python中的数字?
- 27. 输入允许数字和只有一个字母/符号
- 28. C++只有字母和空格输入验证
- 29. Python验证和requireng从用户输入数字
- 30. 如何验证数字输入C++
're.match(r“[\ dA-Z] +”)'应该有效。 –
FWIW,我昨天写了一个函数来确定NRIC检查代码。 http://stackoverflow.com/a/38674235/4014959 –
Wikipedia有[关于NRIC编号结构的信息](https://en.wikipedia.org/wiki/National_Registration_Identity_Card#Structure_of_the_NRIC_number.2FFIN) –