0

入力した通常の単語に対して false が返されるのはなぜですか?

if(!guestbook.getName().matches("[a-zA-Z0-9\\s]")) {
        errors.rejectValue("name", "stringFormat.falseCharacters", "You are only allowed to use numbers, letters and spaces for the name.");
    }

私は何かが欠けているに違いない。

4

5 に答える 5

1

正規表現は、1 文字の長い文字列のみに一致します。
1 つ以上の文字数に一致させるには、次のように変更します。

"[a-zA-Z0-9\\s]+"

この (素晴らしい)正規表現リファレンスも役に立つかもしれません。

于 2013-06-04T10:26:10.537 に答える
1

必要なのは[a-zA-Z0-9\\s]+. 最後に追加+します。

于 2013-06-04T10:26:20.923 に答える
0

正規表現の最後に「+」を追加する必要があるため、そうしないと、1 文字だけの一致を要求することになります。

于 2013-06-04T10:27:20.007 に答える