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