【发布时间】:2020-11-06 08:44:43
【问题描述】:
我目前有一个联系表单,我拒绝包含电子邮件地址和 URL 的文本字段中的值。我在 Rails 控制器中使用这些 REGEX 表达式。我想复制它并在我的 HTML 模式字段中使用它。
regex_email = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
regex_url = /^(http|ftp|https)|[.][a-zA-Z][a-zA-Z]/
regex_message = /seo|captcha|sales|Б|Г|Д|ё|Ж|П|Ф|И|й|Л|Ц|Ш|Щ|Э|Ю|Я/i
regex_all = /#{regex_email}|#{regex_url}|#{regex_message}/i
我已经为 regex_url、regex_message 和 regex_url 创建了区域设置哈希。我想否定软管值,然后添加某种类型的 AND 运算符,并使用下面的示例作为我的模式。
"data-pattern" => "NOT#{regex_email}AND NOT#{regex_url}AND NOT#{regex_message}"
无论是这个还是类似的东西,我的哈希的否定被添加到哈希本身。
"data-pattern" => "#{regex_email}AND#{regex_url}AND#{regex_message}"
我搜索了很多关于 AND 和 NOT 的链接,但讨论不是很清楚。
我问这个问题是因为我没有成功编写只包含字母、数字、句点或连字符的正则表达式。当我包含 .在我的正则表达式中。我什至尝试逃避它,但它仍然匹配。
【问题讨论】:
-
如果您在客户端的 HTML 模式字段中设置它,它可以被禁用。根据防止输入这些项目对您的重要性,最好将其保留在服务器端。
-
确实如此。我的代码有效。
标签: regex ruby-on-rails-5 regex-negation