如何在有數字和字母的情況下爲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. 驗證用戶輸入的字母
- 5. 一個字母后跟一個數字的字符串輸入驗證
- 6. 如果字符是字母輸入驗證從輸入
- 7. 驗證輸入是ListBox中的一個字母
- 8. 驗證文本框中的字母數字輸入[VB2010]
- 9. 用戶輸入驗證只有數字和字母允許
- 10. 爲字母驗證用戶輸入
- 11. Python輸入允許整數和一個字母字符
- 12. 數字輸入驗證
- 13. 如何找到從輸入字母表中的第一個字母和計數輸入字母
- 14. Python輸入驗證 - int在20和100之間,沒有字母
- 15. 驗證textarea輸入的字母數字值
- 16. 在PHP中的數字輸入驗證
- 17. 如何驗證python中的字符串和整數輸入?
- 18. 批量文件輸入驗證 - 確保用戶輸入了一個字母
- 19. 觸發器驗證在DevExpress TextEdit中輸入的每個字母
- 20. 從輸入數字字母
- 21. 字母數字輸入
- 22. 當用戶輸入字母字符時,對數字字段進行驗證
- 23. AngularJS - 日期輸入和數字輸入驗證
- 24. Python - 如何驗證tkinter輸入字段
- 25. 如何數字和字母輸入
- 26. Python:輸入驗證
- 27. Python - 輸入驗證
- 28. jQuery的驗證輸入型數字
- 29. Tkinter輸入的第一個字母
- 30. kotlin驗證輸入字段
'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) –