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

私は正規表現をお勧めします:

// 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 に答える
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 に答える