2

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

4

3 回答 3

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);​

这是一个小提琴。

于 2012-08-03T17:31:33.277 回答
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();
}
于 2012-08-03T17:38:26.067 回答
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 {
    ...
}
于 2012-08-03T17:40:29.043 回答