多くの場合、「0010、0010、0030」のように読み取られるデータの文字列があります。すべての数字が一致しない場合にアラートを設定して、その文字列をユーザーに検証する必要があります。したがって、文字列が「0010、0010、0010」のように見える場合、問題はなく、私のロジックは計画どおりに進みます。しかし、「0010, 0010, 0030」のように見える場合は、ユーザーが間違った操作を選択したこと (0010 と 0030 はロジック内の操作) をユーザーに警告する必要があり、ユーザーは再選択する必要があります。何か案は?
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 に答える