簡體   English   中英

使用angular js在輸入字段中僅允許使用逗號分隔的數字

[英]Allow only comma separated numbers in input field using angular js

我正在使用angular js,下面是我的代碼,該代碼只允許用逗號分隔數字。但是我使用的正則表達式允許用戶輸入1 ,,, 2。

有什么辦法可以限制用戶在每個數字后僅輸入一個逗號?

Plunker - http://plnkr.co/edit/g1X9ldVuH4ZewAlumM1P?p=preview

  function NumberValidator() {
    return {
        require: '?ngModel',
        link: function(scope, element, attrs, ngModelCtrl) {
            if (!ngModelCtrl) {
                return;
            }

            ngModelCtrl.$parsers.push(function(val) {
                var clean = val.replace(/[^\d+(,\d+)*$]/g, '');
                if (val !== clean) {
                    ngModelCtrl.$setViewValue(clean);
                    ngModelCtrl.$render();
                }
                return clean;
            });

            element.bind('keypress', function(event) {
                if (event.keyCode === 32) {
                    event.preventDefault();
                }
            });
        }
    };

取下clean部分,並用if條件代替,

if (!/^\d+(?:,\d+)*$/.test(val)) {

該代碼將測試給定的值是1,2,3還是13,4格式。

例:

 console.log(!/^f+$/.test('ff')) console.log(!/^f+$/.test('df')) 

以為你想要這樣的東西,

str.replace(/[^\d,]|^,+|,+$|,+(?=,)/gm, '')

PLNKR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM