js 正则表达式怎么写 输入多个数字,用/分隔?

校验输入格式为 “-891/-903/-911”,多个数字,用/分隔。怎么写正则表达式呢?

阅读 3k
4 个回答

先分析符合的情况

  1. 单个数字 1或者-1
  2. 多个分割 -891/-903
    /^([-]?[\d]+[/])*([-]?[\d]+)$/

/^(-\d{3})(\/-\d{3})*$/

中划线和数字是固定组合,多个组合用/分隔
/^(-\d+)(\/-\d+)*/

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;");   
    }
})
}
推荐问题