【发布时间】:2015-10-16 11:35:04
【问题描述】:
我有一个应用程序,其中所有输入都由白名单验证(这是一个正则表达式)。 当输入与正则表达式不匹配时,应用程序会向用户抛出错误消息,他应该输入另一个值。
现在,当他与正则表达式不匹配时,我必须能够过滤输入。而且我不知道如何正确地做到这一点。
这就是我想做的:
String inputStr = ... //input value
Pattern p = getValidateurPattern();
if (!p.matcher(inputStr).matches()) {
//a function which return a inputStr such as p.matcher(inputStr).matches() will be true
inputStr = clearInputString(p, inputStr);
}
不幸的是,Pattern 对象是我唯一需要知道的授权值。
有没有办法正确解决这个问题?
谢谢
【问题讨论】:
-
这取决于您输入值的方式。输入是由控制台(例如扫描仪)还是由任何 GUI 发生的
-
感谢您的评论。考虑输入值只是一个必须清理的字符串。 inputStr 来自客户端应用程序,我说的函数在服务器上。
-
您可以生成并尝试随机字符串,直到其中一个被模式接受。说真的,如果对模式没有预定义的限制,就没有合理的方法。