特殊字符索引/位置的javascript验证

时间:2013-08-01 10:34:05

标签: javascript html validation

我输入了来自输入框的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 =用户接受的输入的长度。

2 个答案:

答案 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$)