2 回答
TA贡献1886条经验 获得超2个赞
你没有说“不工作”意味着什么。您将最大值限制为10,因此与“ ...不限制最大尺寸 ” 不一致。
/^\d\d+$/
应该做的伎俩。
function checkValue(value) { document.getElementById('result').textContent = /^\d\d+$/.test(value);}
<input onblur="checkValue(this.value)"><span id="result"></span>
你也说“ ...逗号分隔的整数字符串... ”所以你想检查逗号之间的每个整数,还是删除所有逗号并测试剩下的内容?如果你想要前者,请考虑:
function checkValue(value) {
return /^\d\d+$/.test(value);
}
function checkNumbers(s) {
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) {
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) {
document.write('<br>' + s + ': ' + /^(\d\d+)(,\d\d+)*$/.test(s));
});
TA贡献1936条经验 获得超6个赞
使用描述整个记录的模式(同时所有字段):
function allowonlyTwoDigitIntegers(record) { return /^\d{2,}(?:,\d{2,})*$/.test(record);}
或使用其否定:
function allowonlyTwoDigitIntegers(record) { return !/\b\d\b|\B,|[^\d,]|^$/.test(record);}
添加回答
举报