如何使用JavaScript从两个文本框中删除值?

时间:2015-02-04 11:33:23

标签: javascript

我有三个文本框(多行),如果第一个文本框数据在第一个文本框中可用,那么这些数字将被删除。 像

t1:123456,12345678,9898998,4545454,
t2:123456,66666666

当我按 filter 按钮时,第三个文本框数据将

t3:12345678,9898998,4545454,

代码:

function GetDistinctElements(source, source1, target) {
    var input = source.value.trim().replace(/\s/g, '').split(',');
    var input1 = source1.value.trim().replace(/\s/g, '').split(',');
    input = input.filter(function (val) {
        return input1.indexOf(val) == -1;
    });
    var distinctArray = input.filter(function (item, pos) {
        return input.indexOf(item) == pos;  
    });
    target.value = distinctArray.join(',');
}

但是当我在数字后面输入;时,它也会以;为数字。

如果我输入逗号(,)或分号(;),则应接受这些,并执行过滤。

2 个答案:

答案 0 :(得分:0)

我会将它分解为数组,迭代,然后重新创建字符串。这避免了使用简单的字符串替换来管理逗号的问题。这是代码:



var val1 = $("#1").val();
var val2 = $("#2").val();
var array1 = val1.split(",");
var array2 = val2.split(",");
var val3 = "";
var count = 0;

for (var i = 0; i < array1.length; i++) {
    if (!($.inArray(array1[i], array2) >= 0)){
        if (count > 0)
            val3 = val3 + ",";
        val3 = val3 + array1[i];
        count++;
    }
}
$("#3").val(val3);
&#13;
&#13;
&#13;

这是一个小提琴:http://jsfiddle.net/82etmett/1/

答案 1 :(得分:0)

var input = source.value.trim().replace(/\s/g, '').replace(/;/g,',').split(',');
你错过了

replace(/;/g,',')