我需要在发送表单之前验证字符串,格式必须是
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>
答案 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");
}
请参阅以下工作代码: