我有一个php code
,如下所示,它验证用户在html表单中输入的Line A
的答案。
当用户在html输入字段表单中输入任何带有撇号的答案时,我得到错误消息Secret Answer is Invalid
。举例来说:在输入Hello World'
时,我从行Z收到错误消息Secret Answer is Invalid
。
//response
$response_error = new error();
$response_error->field = SECRET_response;
if($response != "" && $service->validAnswer($answer) != 'true'){ // Line A
$response_error->inError = true;
$response_error->errorMessage = SECRET_response.ISINVALID; // Line Z
} else {
$response_error->inError = false;
}
字符串
属于上面Line A
中使用的validAnswer
方法的Java code/method
是:
public static boolean validAnswer(String answer) {
Pattern a = Pattern.compile("^(?=.*\\S)[a-zA-Z0-9éèàêâçîëïÇÉÔÂÊÎÔÛËÏÀùÙ!#%&$%*\\- ]+$"); // Line B
Matcher b = a.matcher(answer);
logger.info("validAnswer: mmatches(): " + (b.matches()) + " a: " + a);
return b.matches();
}
型
问题陈述:
我想知道我需要在上面的java code
中做什么修改,以便在html输入表单中使用撇号。
这是我在Java代码中尝试的:
我把它放在[ ]的末尾。试了一下,似乎不起作用。
public static boolean validAnswer(String answer) {
Pattern a = Pattern.compile("^(?=.*\\S)[a-zA-Z0-9éèàêâçîëïÇÉÔÂÊÎÔÛËÏÀùÙ!#%&$%*\\-' ]+$"); // Line A
Matcher b = a.matcher(answer);
logger.info("validAnswer: mmatches(): " + (b.matches()) + " a: " + a);
return b.matches();
}
型
1条答案
按热度按时间6mw9ycah1#
从PHP调用Java只是为了使用正则表达式是非常奇怪和低效的。PHP当然支持正则表达式,所以你不需要Java。
无论如何,你的最新代码工作得很好:
字符串
输出量:
型
所以我猜你在修改代码后没有重新编译它。