允许为空-Javascript

时间:2019-05-28 14:36:29

标签: javascript

我有这个正则表达式仅用于输入数字,并且工作正常。问题是我也想允许null。

validator="/([0-9])$/"

我尝试使用|但现在它允许一切

validator="/([0-9]|)$/"

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

我的建议是保持简单,以便您可以执行以下操作:

function MVCArrayBinder(mvcArray) {
    this.array_ = mvcArray;
}

MVCArrayBinder.prototype = new google.maps.MVCObject();
MVCArrayBinder.prototype.get = function (key) {
    if (!isNaN(parseInt(key))) {
        return this.array_.getAt(parseInt(key));
    } else {
        this.array_.get(key);
    }
};

MVCArrayBinder.prototype.set = function (key, val) {
    if (!isNaN(parseInt(key))) {
        this.array_.setAt(parseInt(key), val);
    } else {
        this.array_.set(key, val);
    }
};

答案 1 :(得分:2)

您可以创建类似validator

的函数

示例

const validator = number => ((/([0-9])$/).test(number) || number === null);

console.log(validator("dddd"))
console.log(validator(null))
console.log(validator(54))

答案 2 :(得分:1)

\d+|(?:null)

可以使用的测试集:

比赛:

0
9
01
910
9019901990199019
null

不匹配:

zero
one

答案 3 :(得分:0)

您所需要的只是您可以想象的最简单的内容:
<mat-select formControlName="news" name="description" id="id" [(ngModel)]="model.newsId" placeholder="{{'NewsName'}}" required> <mat-option *ngFor="let news of newsDetails" [value]="news.id"> {{news.areaDescription ? news.areaCode +"-"+ news.areaDescription : news.areaCode }} </mat-option> </mat-select>