繁体   English   中英

正则表达式用于固定位数?

[英]RegEx for fixed number of digits?

我正在完成一份我必须做的作业表格,而当我以为自己完成时,我发现了一个错误。

我需要一个RegEx作为输入字段,如果输入的位数不完全是13位,它将返回警报。

虽然我知道正确的RegExp是: /^\\d{13}$/ ,但我还需要它来忽略一个空字段。 (因为我不希望用户切换到其他输入字段时触发警报)

就在我以为: /^$|\\d{13}$/ ,事实证明,如果少于13位数字,它将返回警报,而如果多于13位,则不会返回警报,这与/^\\d{13}$/可以正常使用14个以上的数字。

有人可以帮我这个忙吗? 谢谢

下面是该函数的其余部分:

        function checkNum(box) {
        var re= new RegExp(/^$|\d{13}$/);
        if(!box.value.match(re)) {
            alert("13 numbers are required");
            document.getElementById("numbers").value = '';
        }
    }

这是输入字段:

<input type="text" name="numbers" id="numbers" placeholder="Numbers" onFocus="this.placeholder=''" onBlur="checkNum(this); this.placeholder='Numbers'"/>

很接近!

/^$|^\d{13}$/

您只是忘了指定从字符串开头开始的13位数字

另外,可以作为match()的替代方法,以进行更快的布尔检查,请使用test()

if (!/^\d{13}$/.test(box.value)) {
    alert("13 numbers are required");
    document.getElementById("numbers").value = '';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM