我输入了来自输入框的23位数字键,它将被' - '分隔。
例如:XXXXX-XXXXX-XXXXX-XXXXX
这是预期格式的意思,5位数后跟 - (连字符)。
问题: 用户可以输入任何数据/错误格式,如XXX-XXXXX-XXXXX-XXXXXXX,在这种情况下,连字符索引无效。我如何确定连字符的索引?
我试过了:
if((prd_len==23) && (n!=-1))
{
var indices = [];
for(var i=0; i<prd_id.length;i++)
{
if (prd_id[i] === "-")
{
indices.push(i);
}
}
for(var x=0;x<indices.length;x++)
{
if((indices[x]!=5) || (indices[x]!=11) || (indices[x]!=17))
{
$('#msgErr1').text('Please enter valid key.');
flag=1;
}
}
}
其中prd_len =用户接受的输入的长度。
答案 0 :(得分:4)
尝试正则表达式
if(input.match(/^(\d{5}-){3}\d{5}$/))
everything is OK
这个表达式基本上是“五位数和一个短划线 - 三次,然后是五位数”。有关进一步参考,请参阅
答案 1 :(得分:2)
正如thg435
所说,但更具人性化: - )
var correct = input.match(/^\d\d\d\d\d-\d\d\d\d\d-\d\d\d\d\d-\d\d\d\d\d$)