gpt4 book ai didi

ruby-on-rails - 如何使正则表达式匹配所有 Internet 域,而不管扩展名如何

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:43 25 4
gpt4 key购买 nike

我需要模型验证来阻止个人电子邮件帐户。

我有以下内容:

PERSONAL_DOMAINS = %w[
yahoo.
ymail
verizon
]

正则表达式验证:

:format => {
:without => /#{PERSONAL_DOMAINS.map{|a| Regexp.quote(a)}.join('|')}/
}

yahoo 在末尾有一个点的原因是允许 yahoo-inc.com 但阻止所有个人域,如 yahoo.com、yahoo.fr、yahoo.uk 等...

此正则表达式失败并导致 yahoo-inc.com 被拒绝...关于如何更新它以使上述用例通过的任何建议?谢谢

最佳答案

尝试在没有 Rails 的情况下进行匹配,以帮助缩小发生的范围:

PERSONAL_DOMAINS_REGEXP = /#{PERSONAL_DOMAINS.map{|a| Regexp.quote(a)}.join('|')}/
=> /yahoo\.|ymail|verizon/

"yahoo-inc.com".match(PERSONAL_DOMAINS_REGEXP)
=> nil

"yahoo.com".match(PERSONAL_DOMAINS_REGEXP)
=> #<MatchData "yahoo.">

关于ruby-on-rails - 如何使正则表达式匹配所有 Internet 域,而不管扩展名如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com