我试图允许用户注册用户名,只要它没有任何特殊字符(例如$£*%&)或其中的数字。
我已经制作了以下内容,但不允许使用非英文字符。也就是说,如果我输入一些像विकिपी
这样的文本,那么它匹配的不是字母字符,这不是我想要的。
[^a-zA-Z0-9'-]+$
我想允许用户以他们想要的任何字母输入用户名。所以他们可以使用英文字母或印地文或中文等。它应该只检查字符串是否存在数字和非字母字符。
是否有某种正则表达式范围可以匹配特殊字符?
澄清:我需要检查输入到任何数字和非字母字符的表单中的用户名(字符串),以便将其标记为无效。因此正则表达式需要查看字符串,如果它匹配数字或特殊字符,那么服务器将抛出错误。通过将它们标记为错误,我告诉用户只使用所选语言的字母表中的字符。
答案 0 :(得分:2)
在Coldfusion(Java)中,您也可以使用unicode属性检查输入:
\\P{IsAlphabetic}
\\P{IsAlphabetic}
匹配任何unicode非字母。
<强>示例:强>
boolean a = "विकिपीडिया".matches(".*?\\P{IsAlphabetic}.*"); // false
boolean b = "विकिपीडिया7".matches(".*?\\P{IsAlphabetic}.*"); // true
boolean c = "-विकिपीडिया".matches(".*?\\P{IsAlphabetic}.*"); // true