我需要一个可以接受所有字母(区分大小写的A-Z),数字(0-9),空格和大多数字符的正则表达式。该字段不得接受带重音的字符(ÁÉÚÍÓ),制表符或以下字符:反斜杠(),小于(<),大于(>),代字号(〜),等于(=),双引号(“ )或逗号(,)
关于我需要什么样的正则表达式的任何想法?
答案 0 :(得分:3)
这样的事情应该有效:
^([A-Za-z0-9 ]+)$
它将匹配foo bar 1234 FOO BAR
但不匹配foo bar 1234 FOO BAR dd
或foo bar 1234 FOO BAR\
注意:然后,您可以在方括号内添加大多数字符。
修改:foo bar 1234 FOO BAR dd
包含一个标签(\t
)字符,但它正在缩小。
答案 1 :(得分:3)
我认为这应该是你想要的角色
(?:[^\p{L}\\<>~=",\t]|[A-Za-z])
[]
表示一个字符类,你可以将所有字符放入,你想要允许
[^]
表示否定的字符类,不允许使用内部的所有字符。
所以,我不知道一个包含所有不在A-Z中的字母的预定义类,因此我会进行替换。
第一个否定的类包含\p{L}
中的所有字母,其余字符是您不希望允许的其他字符,但由于您要允许A-Z
他们也在\p{L}
,你必须再次允许他们。这是在第二部分(|
是一个替代)中完成的,我允许[A-Za-z]
。
所以完整的正则表达式看起来应该是这样的
^(?:[^\p{L}\\<>~=",]|[A-Za-z])+$