【问题标题】:How to set constraints on a Python Input string如何对 Python 输入字符串设置约束
【发布时间】:2020-03-20 07:06:03
【问题描述】:

我希望用户能够输入他们的姓名,并设置约束,以便只允许输入字母、句点和空格等内容,而其他内容(数字等)会引发错误。

我尝试在 while 循环中使用带有 if/else 语句的 isalpha() 函数来在输入中包含数字时重新提示用户。

然而 isalpha() 只接受字母,没有别的。例如,带有空格或句点的用户输入(例如“Bob Smith”、“Dr. Smith”或“Anne-Marie”)会引发错误。

关于如何解决这个问题的任何想法?谢谢

【问题讨论】:

  • 为什么没有另外两个条件来检查字符串中的.-
  • 试试看re.match
  • 有很多选择。使用正则表达式就是其中之一。

标签: python


【解决方案1】:

以下是使用正则表达式的方法。
只需检查输入字符串是否仅包含允许的字符。

import re

def is_valid_name(str):
    pattern = "^[a-zA-Z\ \.\-]+$"
    return bool(re.search(pattern,str))

print is_valid_name("Bob Smith")
print is_valid_name("Dr. Smith")
print is_valid_name("Anne-Marie")
print is_valid_name("Anne!Marie")

【讨论】:

    【解决方案2】:

    我相信你可以这样做:

    def nameChecker(inputName):
        # Remove valid characters from the string
        validChars = [" ",".","-"]
        for char in validChars:
            inputName = inputName.replace(char,"")
    
        # Check if the remaining string is valid
        return inputName.isalpha()
    
    

    我相信这就是您正在寻找的东西,如果这对您有用,请告诉我!

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 2021-09-12
      • 2017-11-25
      相关资源
      最近更新 更多