操作的Javascript字符串验证

时间:2012-08-03 17:29:15

标签: javascript string validation

我有一串数据,通常会这样读:“0010,0010,0030”。如果所有数字都不匹配,我需要通过设置警报来验证该字符串。因此,如果字符串看起来像这个“0010,0010,0010”那么没有问题,我的逻辑按计划进行。但如果看起来像这样:“0010,0010,0030”,那么我需要提醒用户他们选择了不正确的操作(其中0010和0030是逻辑中的操作),并且他们必须重新选择。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

只需将字符串拆分为,,然后比较条目。

如下所示(我没有测试过这个,但它的大纲)

var input = "0010, 0010, 0010",
    tokens = input.split(','),
    result = true;

for (var i = 0; i <= tokens.length - 1; i++) {
   if (i <= tokens.length - 2) {
      // get rid of whitespace
      if (tokens[i].replace(/\s/g, '') !== tokens[i+1].replace(/\s/g, '')) result = false;
   }    
}

alert(result);​

Here is a fiddle.

答案 1 :(得分:0)

试试这个:

var split="0010, 0010, 0030".split(", ");
var ok = true;
for (i = 0; i < split.length - 1; i++)
{
   if (split[i] != split[i + 1])
   {
      //reset_logic();
      ok = false;
      break;
   }
}
if (ok)
{
   //all_good();
}

答案 2 :(得分:0)

我建议使用正则表达式:

// gives you an array with values "0010", "0010", and "0030"
var matches = '0010, 0010, 0030'.match(/(\d+)/);

然后只需循环匹配并将它们与邻居进行比较。如果有任何不常见的,那么你就得到了答案,以便摆脱循环。

var allMatch = true;
for (var i = 1; i < matches.length; i++) {
    if (matches[i-1] !== matches[i]) {
        allMatch = false;
        break;
    }
}

if (allMatch) {
    ...
} else {
    ...
}