我正在创建和Activity,我需要在文本区域中验证正确的输入类型。我想避免任何XSS或Mysql注入。
我想接受[a-z] [A-Z] [0-9] [。] [,]和空格。
我现在唯一得到的是:
Pattern pattern_ = Pattern.compile("^[:alpha:]+(?:(?:\\s+|-)[:alpha:]+)*$");
你会如何实现?
答案 0 :(得分:1)
如果您只想准确接受字符[a-z]
,[A-Z]
,[0-9]
,.
和,
,那么最直接的方式就是是匹配正则表达式^[a-zA-Z0-9.,\s]*$
。 (请参阅Regexr。)
根据数据的不同,严格限制输入并不是一个好主意。
如果您的数据输入字段用于人名,则不允许人们输入带重音字符的名称或英语以外语言的名称。 Thévenin
(法语名称)将被删除,因为它包含重音é
。中国姓氏伟
也是非法的。希腊名字Αφρουδάκης
完全是非法的。
您的语言应该有清理输入数据的方法。这些将阻止SQL或XSS攻击,而不会禁止其他无害的数据,如伟
。有关输入清理的一般概述,请参阅此问题:What are the best PHP input sanitizing functions?
答案 1 :(得分:1)
为什么不这样做:
Pattern pattern_ = Pattern.compile("^[a-zA-Z0-9\.,\s]+$");