2013-04-24 203 views
-2

我有输入作为数字,alphamumeric字符等我建立正则表达式来验证这一点,但未能验证空字符串(空字符串不应该是允许) 这里是我的正则表达式,正则表达式允许数字,字符或字母数字但不是空字符串或特殊字符

(^([A-Za-z]|[0-9])+$) 

这能与上述要求提高?

+0

将'[0-9]'放在与[[A-Za-z]]相同的块中:'[A-Za-z0-9]'。同时使用'Matcher.matches'而不是'find'则不需要'^'和'$',所以你的正则表达式可以简单地为'[A-Za-z0-9] +'。但是,保持开始和结束标记使得正则表达式更加明确。 – 2013-04-24 10:40:33

回答

3

你只需要这个表达式:

^[A-Za-z0-9]+$ 

这将只允许字母(大写或小写)和数字。空字符串将不被允许,因为正则表达式将匹配长度为1或更多的输入。

+0

以及它不是为我工作的,允许空字段, 我这里测试http://www.regexplanet.com/advanced/java/index.html不同的输入字段 – Sohan 2013-04-24 10:47:11

+0

@Sohan:你没有测试它是正确的,我只是经过测试,它的工作,再次测试。 – anubhava 2013-04-24 10:51:48

+0

@Sohan:看到这个演示:http://www.rubular.com/r/YEWdUsRIIj只有前3行匹配,但最低2(包括空字符串)不匹配。 – anubhava 2013-04-24 10:53:17

0

我有输入,数字,字符alphamumeric等我打造正规 表达式验证这一点,但无法验证空字符串 (空字符串不应该被允许)这里是我的正则表达式,

您发布的正则表达式不允许使用空字符串。但是,你应该结合[A-ZA-Z]和[0-9]使用\w这样的:

^(\w)+$

如果你希望它也接受空字符串,你可以使用:

^(\w)*$

+0

它不工作,阅读我的下面的评论和我在哪里高压测试 – Sohan 2013-04-24 10:51:07

相关问题