Regex计算以逗号分隔的6位数字列表
Regex to evaluate a list of 6 digit numbers separated by commas
我有一个输入字段,我希望用户在6位数长的数字列表。用户输入的列表长度是可变的。
通过123456、123457、156545、546541、546541
通过123456、123457通过
546541年
12345、155154
154s54、159475、153456
您正在查找的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');
假设您不希望捕获单个数字,而只想验证输入,则应该使用以下正则表达式:
^('d{6},'s*)*'d{6}$
解析正则表达式:
- ^字符串的开头
- ('d{6},'s*)*零个或多个6位数字,后跟逗号和可选空格
- 'd{6}一个6位数字(这是最后一个,也可能是唯一一个)
- $ end of string
请注意,括号内的表达式是一个捕获组。为了避免捕获并使其更严格,表达式将被写成:
^(?:'d{6},'s*)*'d{6}$
注意第一个括号后的?:
。它表示匹配表达式,但不捕获它。
相关文章:
- 键入最后一位数字后自动提交
- RegExp匹配任意字符串+8位数字
- RegEx查找4位数字前后的逗号
- 如何使用 num.toString 和 str.split 查找整数的最后一位数字
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 简单的Javascript方式,在输入字段的每5位数字后添加一个空格
- 输入只允许6位数字,逗号分隔后,允许角js中的另外6位数字
- 如何显示正好 2 位数字的 html 数字输入的输入值
- JS Regex的最后两位数字与前两位数字匹配
- Javascript-如何从长度有时不是静态的随机字符串中获得3位数字
- 正则表达式,只允许5位数字或字母字符后跟5位数字
- Javascript RegEx:在符号后获取1或2位数字(不包括该符号)
- 如何通过 javascript 在浮点数中保留小数点数后的 2 位数字
- Regex匹配除以7开头的10位数字以外的任何一组数字
- 从整数中删除最后一位数字
- 电话正则表达式,但希望使所有 10 位数字都相同无效
- 正则表达式 - 字符串不应包含超过 7 位数字
- 检查给定的 5 位数字中的所有 5 位数字是否相同
- 比较 OnKeyUp JavaScript 时只有第一位数字
- 在节点中生成随机 32 位数字