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