自定义验证-澄清

custom validation - clarification

本文关键字:澄清 验证 自定义      更新时间:2024-05-17

这里是具有多个场景的字符串验证。情况1和情况6是有效情况,其他情况是无效情况。我的验证码在案例2、案例5和案例6中不起作用。

jsfiddle

验证码:

function testCases(str){
 return (str.match(new RegExp("''([^,]+'')","g")).length == str.split(",").length)
}

实际验证输出:

stack(2),flow(2),over(4),temp(7): true 
stack(2),flow(3),over(4),temp(k): true 
stack(2),flow(2),over(4),temp(0: false 
stack(2),flow(2),over(,temp): false 
stack(2),flow(2),over(4)temp(8): true 
stack(1),flow(7),over,temp: false
stack(1),flow(),over,temp: false

我的期望输出:

stack(2),flow(2),over(4),temp(7): true 
stack(2),flow(3),over(4),temp(k): false
stack(2),flow(2),over(4),temp(0: false 
stack(2),flow(2),over(,temp): false 
stack(2),flow(2),over(4)temp(8): false
stack(1),flow(7),over,temp: true
stack(1),flow(),over,temp: false

您的验证代码只是检查以确保您拥有的paren组的数量与用逗号分隔的术语的数量相匹配,因此它不会执行您想要的操作。您应该单独检查条款:

function validateChunk(s)
{
    return !!s.match(/^[a-z]+(?:'('d+'))?$/);
}
function filterValid(v)
{
    return !v;
}
function testCases(str)
{
    var chunks = str.split(",");
    var validated = chunks.map(validateChunk);
    return (0 === validated.filter(filterValid).length);
}

http://jsfiddle.net/c8t26/7/