Reg Ex允许最小两位数和Max可以是anysize

我需要验证(JavaScript)逗号分隔的整数字符串。它应该允许最少两位数字,并且不应该对最大尺寸有任何限制。

function allowonlyTwoDigitIntegers(field) {
        if (/^[0-9]{2,10}$/.test(+field))
            return true;
        else {
            return false;
        }
    }

我使用以下功能,但它无法正常工作。我不明白这里的问题......

示例:: 1,22提供InValid 11,22:提供有效 11,9999999999999999999999999999999999999等:提供无效(这应该是有效的)

我将逗号分隔的字符串转换为数组,在循环中我通过传递每个单独的值来调用上面的函数。

条件需要满足:1。不允许使用单个数字。


小怪兽爱吃肉
浏览 355回答 2
2回答

MM们

你没有说“不工作”意味着什么。您将最大值限制为10,因此与“&nbsp;...不限制最大尺寸&nbsp;”&nbsp;不一致。/^\d\d+$/&nbsp;应该做的伎俩。function&nbsp;checkValue(value)&nbsp;{ &nbsp;&nbsp;document.getElementById('result').textContent&nbsp;=&nbsp;/^\d\d+$/.test(value);}<input&nbsp;onblur="checkValue(this.value)"><span&nbsp;id="result"></span>你也说“ ...逗号分隔的整数字符串... ”所以你想检查逗号之间的每个整数,还是删除所有逗号并测试剩下的内容?如果你想要前者,请考虑:function checkValue(value) {&nbsp; return /^\d\d+$/.test(value);}function checkNumbers(s) {&nbsp; return s.split(',').every(function(v){return checkValue(v)});}var testSet1 = '12,1231,12,312312';var testSet2 = '12,1231,1,312312';[testSet1, testSet2].forEach(function(set) {&nbsp; document.write('<br>set : ' + set + ' pass? : ' + checkNumbers(set));});如果您只想测试整个字符串,那么:/^(\d\d+)(,\d\d+)*$/会这样做,例如['123,232,44,21','12','1','1231,123123123123,1231','123,2'].forEach(function(s) {&nbsp; document.write('<br>' + s + ': ' + /^(\d\d+)(,\d\d+)*$/.test(s));});

LEATH

使用描述整个记录的模式(同时所有字段):function&nbsp;allowonlyTwoDigitIntegers(record)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;/^\d{2,}(?:,\d{2,})*$/.test(record);}或使用其否定:function&nbsp;allowonlyTwoDigitIntegers(record)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;!/\b\d\b|\B,|[^\d,]|^$/.test(record);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript