Python输入验证一个输入中的字母和数字

时间:2016-07-31 14:45:38

标签: python

如何对有数字和字母的NRIC号码进行输入验证? NRIC编号的例子:S9738275G,S8937231H,S7402343B ic =输入('输入NRIC编号:')

3 个答案:

答案 0 :(得分:1)

对于您的用例,这应该足够了:

>>> 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编号有一个特定的结构和创建校验位/字符的具体方法,所以我会按照提供的链接中给出的代码。假设您的身份证号码明显相同,因为您没有说明它是什么 有趣的是:“用于计算NRIC校验和的算法不公开”维基百科

答案 1 :(得分:0)

这可以通过许多不同的方式完成。根据应用程序的规模,您可能需要更简单或更复杂的东西。

如果你想要坚实的东西,你可以使用Pygood这样的库。

如果您正在寻找中间的内容,也可以使用正则表达式,请参阅此处an example

如果您想让它尽可能简单,您可以进行简单的验证,如下所示:

str = "B123"
if str[0].isalpha() and not str[1:].isalpha():
    # is valid

答案 2 :(得分:0)

试试这个

string = 'S9738275G';

if string.isalnum():
    print('It\'s alphanumeric string')
else:
    print('It\'s not an alphanumeric string')