【发布时间】:2015-07-16 12:03:47
【问题描述】:
我正在尝试允许用户注册用户名,只要其中不包含任何特殊字符(例如 $£*%&)或数字。
我做了以下工作,但它不允许非英文字符。也就是说,如果我输入一些像 विकिपी 这样的文本,那么它匹配的不是字母字符,这不是我想要的。
[^a-zA-Z0-9'-]+$
我想允许用户以他们想要的任何字母输入他们的用户名。所以他们可以使用英文字母或印地语或中文等。它应该只检查字符串是否存在数字和非字母字符。
是否有某种正则表达式范围可以匹配特殊字符?
澄清:我需要检查输入表单的用户名(字符串)中是否有任何数字和非字母字符,以便将其标记为无效。所以正则表达式需要查看字符串,如果它匹配一个数字或特殊字符,那么服务器将抛出一个错误。通过将它们标记为错误,我告诉用户只使用他们选择的语言字母表中的字符。
【问题讨论】:
-
[:alnum:]应该没问题。 -
@MarounMaroun 我似乎无法做到这一点。我收到一条错误消息,提示
POSIX named classes are only supported within a character class -
那就试试
[[:alnum:]]。
标签: regex