2016-08-12 52 views
0

在我的項目中,我需要onBlur事件來檢查字符串是否包含任何重複的字符以將其刪除,即文本值在字符串中有01,02,04,01,07,2,因爲逗號01必須重複值,因此我需要01,02,04,07,2。這可能嗎?javascript onBlur以避免重複的字符串

回答

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>

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); 
}) 
0

您可以使用拆分(「」)方法創建通過數組中的值的數組,然後循環值,然後使用splice(0,1)方法刪除重複。之後,您可以使用join(「,」)方法將數組恢復爲字符串以使用逗號分隔符創建字符串。

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));