RegEx不允许双引号不起作用

时间:2017-05-30 07:21:28

标签: javascript angularjs regex

我正在尝试组建一个RegEx,它允许使用字母数字和一些特殊字符(@ -_。)。我试图将这些特殊字符列入白名单,但也允许使用其他特殊字符。所以我试图将除上述之外的所有其他特殊字符列入黑名单。使用它:

/^([^\s!#$%&'()*+\/:;<=>?\[\\\]^`{|}~,][a-zA-Z@._0-9-]*[^\s!#$%&'()*+\/:;<=>?\[\\\]^`{|}~,])$/

如何添加双引号,以便在字符串中的任何位置都不允许。 尝试了\&#34;但是没有用。

3 个答案:

答案 0 :(得分:1)

使用此

Dim clean  as string = Regex.replace(tbname,"[^A-Za-z0-9\-/]","")

这个阻止所有特殊字符。

答案 1 :(得分:0)

如果我读你的正则表达式是正确的,并理解你的愿望:

^(                             # Start of string and capture group
[^\s!-,\/:-?\[\\\]^`{|}~,]     # Any character, BUT "blacklisted"
[\w@.-]*                       # Any number of word characters, @, . or -.
[^\s!-,\/:-?\[\\\]^`{|}~,]     # Any character, BUT "blacklisted"
)$

使用范围简化了它。例如。在字符类中,!-,!"#$%&'()*+,相同,其中黑名单不需要的"

答案 2 :(得分:0)

您可以使用白名单方法,但最后需要- [@_.-] ;或逃避它: [@\-_.]

否则,@-_表示“@的ascii与_的ascii之间的任何内容”。

Regex101.com是这类产品的黄金,它解释了正则表达式的每个部分。