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]+“
答案是错误的。