我有一个输入字段,我希望用户将其放入6位数字的数字列表中。用户输入的列表将具有可变长度。
通
123456,123457,156545,546541,546541
通
123456,123457
通
546541
故障
12345,155154
故障
154s54,159475,153456
故障
154s544,159475,153456
答案 0 :(得分:0)
您正在寻找的regEx是/ ^ \ d {6} $ /,它匹配一个6位数字,只有6位数字。
var cases = [
'123456, 123457, 156545, 546541, 546541',
'123456, 123457',
'546541',
'12345, 155154',
'154s54, 159475',
'154s544, 159475, 153456'
];
//Break up numbers in string into array the check each token
//against the regex. If all tokens passes the test, then it
//returns true, else false.
t = cases.map(c => c.split(', ')
.reduce((p, n) => p && !!n.match(/^\d{6}$/), true));
for (let i=0; i < cases.length;i++)
console.log('case:', cases[i], t[i]?'pass':'fail');
&#13;
答案 1 :(得分:-1)
假设您不想捕获单个数字,但只想验证输入,则以下正则表达式应该这样做:
^(\d{6},\s*)*\d{6}$
正则表达式的细分:
请注意,括号内的表达式是一个捕获组。为避免捕获并使其更严格,表达式将写为:
^(?:\d{6},\s*)*\d{6}$
请注意第一个括号后的?:
。这意味着匹配表达式但不捕获它。