6

数字と「.」などの特殊文字のみを許可しようとしています。および「、」はテキスト文字列で許可されます。そのために私は次のコードを試しました

var pattern = /[A-Za-z]/g;
var nospecial=/[\(#\$\%_+~=*!|\":<>[\]{}`\\)';@&?$]/g;
if (!ev.ctrlKey && charCode!=9 && charCode!=8 && charCode!=36 && charCode!=37 && charCode!=38 && (charCode!=39 || (charCode==39 && text=="'")) && charCode!=40) {
    console.log(text);
    if (!pattern.test(text) && !nospecial.test(text)) {
        console.log('if');
        return true;
    } else {
        console.log('else');
        return false;
    }
}

しかし、目的の出力が得られません。どこが間違っているか教えてください。

4

5 に答える 5

24

ブラックリストに登録するのを忘れて、これを実行して、必要なものを許可してください。

var pattern = /^[0-9.,]*$/;

編集:また、数字、コンマ、ドットをチェックするだけではありません。このようなものは、あなたが望んでいた以上のことをしていると思います:

var pattern = /^(0|[1-9][0-9]{0,2}(?:(,[0-9]{3})*|[0-9]*))(\.[0-9]+){0,1}$/;

デモ

ここに画像の説明を入力

于 2013-04-17T12:36:47.963 に答える
5

/^[0-9,.]*$/では、テストを否定する代わりに試してみませんか?

于 2013-04-17T12:37:52.923 に答える
2

これを試すことができます:

/([0-9]+[.,]*)+/

カンマまたはドットの有無にかかわらず、数字と一致します。

于 2016-10-10T08:52:11.133 に答える