校验输入格式为 “-891/-903/-911”,多个数字,用/分隔。怎么写正则表达式呢?
const reg = /^(-?\d+\/)+(-?\d+)$/;
// 以下是测试信息
const tests = [
['-222/-333/-11', true],
['-100/-2', true],
['-3/-10000/-1111/', false],
['-3', false],
['-3///', false]
];
testReg(reg, tests)
function testReg(reg, testArray) {
testArray.forEach(item => {
const text = item[1] ? '应该通过' : '不应该通过';
if(reg.test(item[0]) !== item[1]) {
console.log(`%c 测试 %c ${item[0]} ${text} %c 不符合预期`, 'color: blue;', 'font-size: 110%;', "color: red;");
} else {
console.log(`%c 测试 %c ${item[0]} ${text} %c 符合预期`, 'color: blue;', 'font-size: 110%;', "color: green;");
}
})
}
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答852 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
先分析符合的情况
/^([-]?[\d]+[/])*([-]?[\d]+)$/