验证特定格式而不使用“ - ”分割字符串

时间:2014-04-25 04:21:00

标签: javascript validation

我需要在发送表单之前验证字符串,格式必须是

LLLL999999XXX

其中L是任何字母 9是任何数字 X是任何字母或数字。

我弄清楚如何使用 - 分裂,问题是我的用户使用输入这个值而没有 - ,所以如果我要求格式的话,它将是一个平局。 (在这一刻我问,请输入格式LLLL-999999-XXX哪个不好。)

如何在不使用任何想法的情况下验证这一点?对不起我在javascript的新手

<script language="JavaScript">
function RFC(cual)
{
mensaje = "pls enter this format LLLL-999999-XXX"
pat = /[a-z]|[A-Z]/
pat2 = /[a-z]|[A-Z]|[0-9]/
val = cual.split("-")
if (val.length == 3){
    if(val[0].length == 4){
        if(!comp(val[0],pat)){
            alert( mensaje)
            return false
            }
        }
    if(val[1].length == 6){
        if(isNaN(val[1])){
            alert('no es un numero')
            return false
            }
        }
    if(val[2].length == 3){
        if(!comp(val[2],pat2)){
            alert(mensaje)
            return false
            }
        }
else{
    alert(mensaje)
    return false
    }
}
else{
    alert(mensaje)
    return false
    }
return true
}
function comp(cual,pa){
for(m=0;m<cual.length;m++){
    if(!pa.test(cual.charAt(m))){
        return false
        break
        }
    }
return true
}
</script>

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式,如下所示:

/^[a-z]{4}[0-9]{6}[a-z0-9]{3}$/i

如果您希望-为可选项:

/^[a-z]{4}-?[0-9]{6}-?[a-z0-9]{3}$/i

答案 1 :(得分:1)

更新:

var input = "LLLL999999XXX";

var pattern = /^[a-zA-Z]{4}\d{6}[a-zA-Z0-9]{3}$/;

if( input.match(pattern) ){
    alert("true");
}else{
    alert("false");
}

请参阅以下工作代码:

JsFiddle