Regex HTML5模式-不允许以下字符
我要阻止以下字符:Regex HTML5模式-不允许以下字符,regex,html,forms,validation,Regex,Html,Forms,Validation,我要阻止以下字符: ( ) / > < ] [ \ " , ; | ( ) / > < ] [ \ " , ; | 我的模式有什么问题 pattern="[^()/<>[]\,'|\x22]+" pattern=“[^()/[]\,”|\x22]+” 如果模式包含一个],则应使用\对其进行转义,其他字符也需要转义,如在转义另一个值的上下文中未使用时的\: 我的模式有什么问题 它包含一个求反字符类,在该类中,您未能转义
(
)
/
>
<
]
[
\
"
,
;
|
(
)
/
>
<
]
[
\
"
,
;
|
我的模式有什么问题
pattern="[^()/<>[]\,'|\x22]+"
pattern=“[^()/[]\,”|\x22]+”
如果模式包含一个]
,则应使用\
对其进行转义,其他字符也需要转义,如在转义另一个值的上下文中未使用时的\
:
我的模式有什么问题
它包含一个求反字符类,在该类中,您未能转义]
符号。在字符类内部,它*必须在JS中转义,在字符类外部,您不必转义它。因此,您的“[^()/[]\,“|\x22]+”
模式实际上意味着:匹配一个字符,并且只匹配一个!字符,而不是()/[
(带有[^()/[]
部分)后跟*序列的、'
、-或-(如|
未在字符类之外转义,则为交替运算符)双引号(与\x22
匹配),后跟一个或多个文字]
符号(如]
匹配字符类外部的文本]
,并且+
是为其设置的量词
你真的需要
pattern="[^()/><\][\\\x22,;|]+"
pattern=“[^()/>您可以使用以下代码:
emailPattern = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
emailPattern=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}]);([a-zA Z-0-9]+-Z]+/$2;];
如何使用该模式?返回的是误报还是否定?如果是,是哪些字符?请尝试发布代码。我认为您需要立即转义好几个字符。@ste fu发布了什么代码?他已经发布了。他发布了模式
属性。您认为他需要转义哪些字符?您可以测试这对于任何regexp测试站点来说都是微不足道的,它会指出您的错误。@OronBenDavid:请在这里对所有答案进行投票,因为它们都很有用。一些卑鄙的用户对所有答案都投了反对票,因为他们认为我们不应该帮助您。这种做法非常糟糕,但一些用户不幸使用了它。非常感谢:)关于这个区域:|\\x22第一个“\”代表“|\”,那么第二个“\”是用来做什么的呢?它是在测试代码后留下的,当测试代码时它不起作用,所以我尝试了,但原因是我忘了运行代码,会将其删除。看起来有些字符仍然丢失:)顺便说一句,逗号不需要转义。嗯“[^()/[\]\,”|\x22]+“
答案是错误的。