【发布时间】:2020-10-07 22:00:28
【问题描述】:
我已经看过一些关于此的帖子,但无法为我的场景找到解决方案。我有一个表格,我正在尝试检查前导和尾随空格。它位于使用 Webform Validation API 的 Drupal 的 hook_form_validation_validate 中。我使用了一些变体,但这是看起来最合乎逻辑的两个。
foreach ($items as $key => $val) {
// @todo: Check for scenarios where $val is an array.
$valCheckSpace = preg_match('/^\s*/', $val);
if ($valCheckSpace) {
$errors[$key] = t('%item cannot have leading or trailing spaces.', array('%item' => $components[$key]['name'], '%num' => $max_length));
}
}
return $errors;
}
还有这个:
foreach ($items as $key => $val) {
// @todo: Check for scenarios where $val is an array.
$valCheckSpace = preg_match('/^\s*/g', $val);
if ($valCheckSpace) {
$errors[$key] = t('%item cannot have leading or trailing spaces.', array('%item' => $components[$key]['name'], '%num' => $max_length));
}
}
return $errors;
}
还有一个:
foreach ($items as $key => $val) {
// @todo: Check for scenarios where $val is an array.
$valCheckSpace = preg_match('/^\s/', $val);
if ($valCheckSpace) {
$errors[$key] = t('%item cannot have leading or trailing spaces.', array('%item' => $components[$key]['name'], '%num' => $max_length));
}
}
return $errors;
}
使用 VSCode 和 XDebug,在这些断点处不会触发任何内容,并且条目在应该引发错误时通过。
对此的任何见解将不胜感激。
以下是输入到表单域的数据示例。 Form field image with entries here
上图显示了正在输入的内容。条目后还有尾随空格。预期的结果是抛出错误,让用户知道不允许使用前导或尾随空格。
【问题讨论】:
-
您介意添加一些示例输入数据和您的预期匹配吗?
-
我已经添加了正在输入的图像以及我想要的结果的解释。这些条目只是带有前导空格和尾随空格的数字条目。应该抛出一个错误,让用户知道不允许使用前导或尾随空格。
-
“抛出错误”是什么意思?因为你的例子没有一个字面上抛出任何东西。另外,你确定你没有使用这样的东西:drupal.org/project/trim?
标签: php regex drupal-7 drupal-webform