如何过滤 Sitefinity 表单段落文本框以禁止 URL?

How do I filter a Sitefinity form paragraph text box to disallow URLs?

我公司每天通过客户联系表收到几 (3-5) 封垃圾邮件。由于某种原因,我们使用的 reCaptcha 没有阻止它们,但它们太少了,也许确实有人参与了。

它们的一个共同点是段落文本框中的某种 URL link 表示附加评论。没有任何理由让实际客户发布 URLs,所以我们认为我们可以设置验证以排除他们并结束它。但是,我无法让它工作。

在编辑文本框时,我转到了高级 > 模型 > ValidatorDefinition,这样我就可以输入我的自定义正则表达式代码来禁止任何带有 http/https/ftp 的内容:

^(?!((http[s]?|ftp):\/)?\/?)

但我无法确定在哪个字段中输入此内容以及我需要更改哪些其他字段以确保其正常工作。从this article来看,ExpectedFormat字段似乎应该是Custom,但是我的正则表达式代码去哪儿了?将它放在 RegularExpression 字段中会为任何内容激活 RegularExpressionViolationMessage,而不仅仅是 URLs,所以我怀疑我的正则表达式可能是错误的,即使我把它放在正确的位置。

我真的不能说配置部分。链接的文档看起来很清楚。
如果您在动态模块中,this post 可能会有所帮助:

You can find a regex field in the ModuleBuilder module -> Your module -> Your module type -> Click on the desired field for the regex validation -> select "limitation" tab (example).

关于正则表达式本身,像这样尝试 (demo)

^((?!(?:(https?|ftp)(?::\/\/))).)*$

您可能需要添加一个 (?s) 单行标志:(?s)^((?!(?:(https?|ftp)(?::\/\/))).)*$