0

英数字で構成される任意の文字列に一致する単純なマッチャーを作成しようとしています。私は次のことを試しました:

    Ext.regModel('RegistrationData', {
        fields: [
            {name: 'nickname',type: 'string'},
        ],

        validations: [
            {type: 'format', name: 'nickname', matcher: /[a-zA-Z0-9]*/}
        ]
    });

ただし、これは期待どおりに機能しません。マッチャーの正規表現がどのように見えるかについてのドキュメントは見つかりませんでした。

助けてくれてありがとう。

4

2 に答える 2

1

sencha.comで検証について説明しているブログを見つけました。

sencha-touchが何であるかはわかりませんが、正規表現に何を与えているのか、何を期待しているのか、実際に何をしているのかを教えてください(期待どおりに機能しないのは少し曖昧です)。 。ブログによると、「正規表現形式」を採用しているので、簡単なチェックとしてはかなり標準的なはずです。

編集:

大げさな推測として、名前に実際には文字と数字だけが含まれるようにするために、アンカーを使用したい場合があります。

/^[a-zA-Z0-9]*$/

^文字列の先頭と一致しています

$文字列の終わりに一致しています

于 2011-04-06T10:39:32.430 に答える
1

現在の正規表現/[a-zA-Z0-9]*/は、文字列内のどこかに0個以上の小文字または大文字(AZ)または数字が含まれている文字列と一致します。そのためJoe#2、、、、およびJ/o/e、Joe24 jOe28`が一致します。これらはすべて、それぞれの文字の後続の出現が0個以上含まれています。*89JoeJoeand

文字列にそれぞれの文字のみを含める場合は、stemaの回答に従って正規表現を変更する必要があります。

/^[a-zA-Z0-9]*$/

しかし、これにはまだ1つの問題があります。*これは0回以上の出現を意味するため、空の文字列にも一致するため、正しい文字列は次のようになります。

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

1つ以上のオカレンス+意味します。これにより、、、などの小文字または大文字の文字または数字を1つだけ含むニックネームが許可されます。aF6

于 2011-04-06T11:53:47.250 に答える