5

私はテキストボックスを持っていて、「。」の出現回数を数えたいと思っています。

テキストボックスにすでに「.」がある場合 ユーザーは「.」を入力できません。彼のキーボードから

ここに私のコードがあります:

 $('.txt').keyup(function() {
            var ele = $(this).val();
            var contains = (ele.indexOf('.') > -1);
            if (contains) {
                var count = $(this).val().match(/./g);
                if (count > 1) {                    
                    var cont = $(this).val();
                    var str = $(this).val().length;

                    $(this).val(cont.substring(0, str));
                }                   
            }

        });

$(this).val().match(/./g) は、「.」の出現インデックスを示します しかし、私はそれの出現を数えたいです。

4

7 に答える 7

3

正規表現を変更する必要があります。「。」正規表現ではすべてを意味します。「.」をエスケープする必要があります。多分、こういう…

$(this).val().match(/\./g);
于 2013-07-09T06:07:16.027 に答える
0

これはまさにあなたが望むものです..:)デモはこちら

文字をエスケープしてカウントするだけです。

Javascript:

 $('.txt').keyup(function() {
            var ele = $(this).val();

                            alert(ele.match(/\./g).length);

        });

HTML

<textarea id="txt"></textarea>
于 2013-07-09T06:08:40.310 に答える
0

ユーザー(または他の高度なもの)に警告しようとしていて、そのためにカウントが必要な場合は、長さを追加する必要があります。

$('.txt').keyup(function() {
    var ele = $(this).val();
    var i = ele.indexOf('.');
    if (i > -1) {
        var c = ele.match(/\./g).length);
        // ...
    }
});

ドットを削除しようとしているだけの場合は、次を使用できます。

$('.txt').keyup(function() {
    $(this).val($(this).val().replace('.', ''));
});
于 2013-07-09T06:22:32.113 に答える