4

口座番号を確認する必要があります。数字のみで、9 文字または 10 文字であると想定されています。私はこれを試しました:

return Regex.IsMatch(id, "[0-9]{9,10}");

ただし、番号が「1234567890blah」の場合に true を返すため、これは正しく機能していません。私は正規表現が得意ではないので、助けていただけますか?

ありがとう。

4

3 に答える 3

8

数字は文字列全体でなければならないことを示す必要があります。文字列^の先頭である必要があること$を示し、終了である必要があることを示すために、先頭に配置します。

return Regex.IsMatch(id, "^[0-9]{9,10}$");

詳細については、正規表現アンカーを参照してください。

于 2012-07-30T15:05:37.523 に答える
4

(開始と終了の文字、^と$の文字を追加)を使用して変更します

return Regex.IsMatch(id, "^[0-9]{9,10}$");
于 2012-07-30T15:05:33.267 に答える
2

これは正規表現の問題です。もっとシンプルで明確な解決策があります。

string acct = "1234567890";
long temp; 

return (acct.Length == 9 || acct.Length == 10)
    && long.TryParse(acct, out temp);
于 2012-07-30T15:10:04.087 に答える