1

我有以下正则表达式,我通过 xml 文件为 java 提供服务。

[a-zA-Z -\(\) \-]+

此正则表达式用于验证服务器端和客户端(通过 javascript),并且在仅允许字母内容和一些其他字符时效果很好......

我的问题是它还允许零长度字符串/空通过。

有没有人对此有一个简单而优雅的解决方案?

我已经试过了...

[a-zA-Z -\(\) \-]{1,}+

但这似乎不起作用。

干杯!

调查后更新

看来我提供的代码确实有效......

String inputStr = " ";
    String pattern = "[a-zA-Z -\\(\\) \\-]+";
    boolean patternMatched = java.util.regex.Pattern.matches(pattern, inputStr);
    if ( patternMatched ){
        out.println("Pattern MATCHED");
    }else{
        out.println("NOT MATCHED"); 
    }

在仔细研究之后,我认为问题很可能在我的一些 java bean 编码的逻辑中......似乎正则表达式在应该进行字符串解析的地方被删除,从而允许空字符串提交...还有任何其他字符串... EEJIT 我是...

为帮助同行评审我最初的愚蠢而欢呼......!

4

1 回答 1

2

你有没有试过这个:

[a-zA-Z -\(\) \-]+
于 2012-04-27T10:00:11.277 回答