javascript onBlur以避免重复的字符串

时间:2016-08-12 02:41:04

标签: javascript

在我的项目中,我需要onBlur事件来检查字符串是否包含任何重复的字符以将其删除,即在逗号01必须复制值后,字符串中的文本值为01,02,04,01,07,2,因此我需要01,02,04,07,2。这可能吗?

4 个答案:

答案 0 :(得分:0)

使用JQuery你可以做到

var numberString = '01,02,04,01,07,2';
var result = [];

$.each(numberString.split(','), function(index, number) {
    if($.inArray(number, result) === -1) {
      result.push(number);
    }
});

document.write(result.join(','));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

$("input:text").on('blur', function() {
    var textVal = $(this).val();
    var valArray = textVal.split(',');
    var newValArray = [];
    for(var i in valArray) {
        if(newValArray.indexOf(i) === -1) {
            newValArray.push(i);
        }
    }
    var newTextVal = newValArray.join();
    $(this).val(newTextVal);
})

答案 2 :(得分:0)

您可以使用split(“,”)方法创建值的数组,然后遍历数组值,然后使用splice(0,1)方法删除重复项。之后,您可以使用join(“,”)方法将数组还原为字符串,以使用逗号分隔符创建字符串。

答案 3 :(得分:0)

我写了这个减少代码。它可以满足您的需求。

//I altered your number string to this.
var numberString = '01,02,04,01,07,2,07,10,55,55,10,02,500,450';

var strDedoop = function ( str ) {

    var strArr = [], // temp array
        numStrSplit = str.split(','); // split the number string by comma 

    //loop through the array 
    numStrSplit.forEach(function(currentValue) {
            // Ternary operation. If the number is not in the array it is put in.
            strArr.indexOf(currentValue) === -1 ? strArr.push(currentValue) : false;
    });

    return strArr.toString(); // return the array as a string.
}

strDedoop(numberString);
// returns "01,02,04,07,2,10,55,500,450"

你可以这样使用它。

$("input:text").on('blur', strDedoop(numberString));