正则表达式:
^[a-z A-Z0-9-/().,@&#*!%:-]{0,100}
如何为'$'和'+'标志添加排除?我试过以下但是没有用。它排除了它出现的第一个被排除的角色以及之后的所有其他角色(包括我希望包含的角色)。
^[a-z A-Z0-9-/().,@&#*!%:-][^$+]{0,100}
答案 0 :(得分:4)
您可以使用否定前瞻检查输入是否包含任何$
或+
,然后选择适当的字符:
/^(?!.*?[$+])[a-z A-Z0-9-\/().,@&#*!%:-]{0,100}/
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
.*? any character except \n (0 or more times
(matching the least amount possible))
--------------------------------------------------------------------------------
[$+] any character of: '$', '+'
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
[a-z A-Z0-9- any character of: 'a' to 'z', ' ', 'A' to
\/().,@&#*!%:- 'Z', '0' to '9', '-', '\/', '(', ')', '.',
]{0,100} ',', '@', '&', '#', '*', '!', '%', ':', '-
' (between 0 and 100 times (matching the
most amount possible))
答案 1 :(得分:0)
在您的char类中未包含$
和+
符号时,您已将其排除在外:
[a-z A-Z0-9\-\/().,@&#*!%:]{0,100}
按照我理解的方式,您不需要^
来检查输入的开头。你也最好逃避-
,因为它在课堂中间,并删除最后的那个,以及可以用作分隔符的/
。