Bạn có thể dùng regular expressions để thực hiện tác vụ này. Để verify chuỗi chỉ chứa chữ, số, underscore và dash, ta dùng regex: "^[A-Za-z0-9_-]*$".
Ví dụ
import re
print(bool(re.match("^[A-Za-z0-9_-]*$", 'aValidString123--__')))
print(bool(re.match("^[A-Za-z0-9_-]*$", 'inv@lid')))
Kết quả
True False
Bạn cũng có thể đạt được kết quả này bằng Sets. Khai báo set bằng các ký tự bạn muốn cho phép và dùng code sau:
Ví dụ
from sets import Set
allowed_chars = Set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-')
validationString = 'inv@lid'
if Set(validationString).issubset(allowed_chars):
print(True)
else:
print(False)
Kết quả
Điều này sẽ cho ra kết quả:
False