首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用模式属性排除PO地址

使用模式属性排除PO地址
EN

Stack Overflow用户
提问于 2016-12-12 12:05:03
回答 1查看 1K关注 0票数 2

首先,我知道这里已经有一些关于排除PO地址的线程,但是它们中的大多数似乎都使用Jquery,而且我试图在我的平台(prestashop)中复制它们的尝试对我来说还没有成功。虽然这可能是我使用的解决方案,如果其他所有失败,我希望使用模式输入属性,如果可能的话。

我有一个正则表达式,希望在模式属性中使用,但是我对正则表达式不太熟悉。事实上,我只是最近才遇到他们。

我希望验证一个表单的基础上,是否已输入一个邮箱地址。如果有,该表格将不会提交。在做了一些研究之后,我遇到了下面的表达式,它是用来做我想要做的事情的:

代码语言:javascript
运行
复制
^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office (box|bin)|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)

对于我的理解来说,这个表达式太复杂了,但是在Regex101中它似乎是在做与我想要的相反的事情,我可能是误解了,但它似乎是在验证PO框,排除所有其他东西。尽管如此,我还是在我的表格上试过了,但它似乎成功了,因此无论输入什么内容,它都不会被排除在外。

这让我相信,要么我做错了什么,要么模式输入字段不支持这样的复杂表达式,或者它需要在一个不同的语法,如果它这样做了。

我希望能对此事作出一些澄清,并建议采取哪些步骤来验证我的表格。

模式输入属性是否支持这种类型的表达式,如果不是,我应该如何使用它来验证我的表单?

,为了澄清,这个表达式是验证PO框还是排除它们?如果它验证了它们,我将如何更改它来执行相反的操作?

下面是我目前使用的代码:

代码语言:javascript
运行
复制
<label for="return-street-address">Street Address <span class="asterisk">*</span></label> <input type="text" value="" name="ADDRESS" required id="return-street-address" "^(?! *(#\d+|(box|bin)[-. /\\]?\d+|.*p[ .]? ?[o0][-. /\\]? *-?((box|bin)|b|(#|num)?\d+)|p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+|p *-?/?o? *-?box|post office (box|bin)|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)).*"> 

这些:

代码语言:javascript
运行
复制
PO Box 123
P.O. BOX 123

不应使用此代码进行验证。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 15:21:25

如果要使用所找到的模式,则需要删除字符类中不必要的转义,并将每个字母替换为一个字符类,包括字母的小写和大写变体(因为不能用HTML5模式传递正则修饰符)。

使用

代码语言:javascript
运行
复制
input:valid {
  color: black;
}
input:invalid {
  color: red;
}
代码语言:javascript
运行
复制
<label for="return-street-address">Street Address <span class="asterisk">*</span></label> <input type="text" value="" name="ADDRESS" required id="return-street-address" pattern="^(?! *(#\d+|([bB][oO][Xx]|[Bb][Ii][Nn])[-. /\\]?\d+|.*[pP][ .]? ?[Oo0][-. /\\]? *-?(([bB][oO][Xx]|[Bb][Ii][Nn])|b|(#|[Nn][Uu][Mm])?\d+)|[Pp]([Oo][Ss][Tt])? *([Oo]([Ff]{2}([Ii][Cc][Ee])?)?)? *(([bB][oO][Xx]|[Bb][Ii][Nn])|b)? *\d+|[Pp] *-?/?[Oo]? *-?[bB][oO][Xx]|[Pp][Oo][Ss][Tt] [Oo][Ff][Ff][Ii][Cc][Ee] ([bB][oO][Xx]|[Bb][Ii][Nn])|(([bB][oO][Xx]|[Bb][Ii][Nn])|[Bb]) *([Nn][Uu][Mm][Bb][Ee][Rr]|[Nn][Uu][Mm]|#)? *\d+|([Nn][Uu][Mm][Bb][Ee][Rr]|[Nn][Uu][Mm]|#) *\d+)).*"> 

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41100531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档