正则表达式只检查数字和特殊字符的存在

时间:2015-07-16 12:03:48

标签: regex

我试图允许用户注册用户名,只要它没有任何特殊字符(例如$£*%&)或其中的数字。

我已经制作了以下内容,但不允许使用非英文字符。也就是说,如果我输入一些像विकिपी这样的文本,那么它匹配的不是字母字符,这不是我想要的。

[^a-zA-Z0-9'-]+$

我想允许用户以他们想要的任何字母输入用户名。所以他们可以使用英文字母或印地文或中文等。它应该只检查字符串是否存在数字和非字母字符。

是否有某种正则表达式范围可以匹配特殊字符?

澄清:我需要检查输入到任何数字和非字母字符的表单中的用户名(字符串),以便将其标记为无效。因此正则表达式需要查看字符串,如果它匹配数字或特殊字符,那么服务器将抛出错误。通过将它们标记为错误,我告诉用户只使用所选语言的字母表中的字符。

1 个答案:

答案 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