验证文本区域

时间:2013-09-25 18:26:19

标签: java regex

我正在创建和Activity,我需要在文本区域中验证正确的输入类型。我想避免任何XSS或Mysql注入。

我想接受[a-z] [A-Z] [0-9] [。] [,]和空格。

我现在唯一得到的是:

Pattern pattern_ = Pattern.compile("^[:alpha:]+(?:(?:\\s+|-)[:alpha:]+)*$");

你会如何实现?

2 个答案:

答案 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]+$");