WTForms 正则表达式验证器:如何使用正则表达式匹配 html 标签内的白色 space

WTForms Regexp validator: How to match white space within html tags using regex

我有一个带有 textarea 字段的表单,想知道是否可以使用 WTForms Regexp 验证器来防止在 textarea 仅包含空格时提交表单。 有办法吗?

这是我的表格:

class AddReviewForm(FlaskForm):
    review = TextAreaField("Review", validators=[DataRequired())
    submit = SubmitField("Post Review")

我希望 Regexp 允许我只阻止空格。 我的文本区域字段包括 CKEditor,它将 <p>(或其他标签)添加到输入中,以便将其显示为所见即所得。

所以在数据库中,空格看起来像这样:

"<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>"

这不应该有效。

看看这个我想这可能对你有帮助:

这是上图的link

从上图可以看出,这应该满足你的条件:

"如果数据是字符串类型,则只包含空白字符的字符串被认为是假的。"

如果可行请告诉我:D!

您可以创建自定义验证器。

导入ValidationError:

from wtforms import ValidationError

自定义验证器:

def validate_review(self, field):
    text = field.data.replace('<p>','')
                     .replace('</p>','')
                     .replace('&nbsp;','')
                     .replace('&ensp;','')
                     .replace('&emsp;','')
                     .replace('<br>','')
    if not text:
        raise ValidationError('This field should not contain only white spaces')

确保此自定义验证器是 AddReviewForm class 的方法。另请注意,自定义验证器的方法名称应采用 validate_<field_name>.

的形式