Remove Duplicates and Extra Characters from Text Fields using jQuery/Javascript
Remove Duplicates and Extra Characters from Text Fields using jQuery/Javascript
HTML
<h2>Remove Duplicates and Extra Characters from Text Fields</h2>
<form id="form" action="" method="post">
<fieldset>
<label for="include_values">Include this text:</label><br />
<textarea id="include_values" name="include_values" class="descBoxes" rows="2" cols="80"></textarea>
<p>Enter text separated by commas</p>
<label for="exclude_values">Exclude this text:</label><br />
<textarea id="exclude_values" name="exclude_values" class="descBoxes" rows="2" cols="80"></textarea>
<p>Enter text separated by commas</p>
</fieldset>
</form>
CSS
@import url(http://fonts.googleapis.com/css?family=Lato:300,400);
body {
padding: 10px;
font-family:'Lato';
font-weight: 400;
}
h2 {
margin-bottom: 20px;
color: #4679bd;
font-weight: 400;
font-size: 26px;
}
label { font-size: 1em; }
p { color: #999999; margin-bottom: 2em; }
.descBoxes {
min-width: 50em !important;
max-width: 50em !important;
min-height: 5em !important;
max-height: 5em !important;
overflow: auto !important;
}
JavaScript
$(document).ready(function() {
$("#include_values, #exclude_values").change(function() {
cleanIncludeExclude($(this).attr('id'));
});
});
/**
* Format the Include and Exclude text values
* Remove Duplicates
* Remove leading and trailing blanks, extra commas, returns, etc.
*/
function cleanIncludeExclude(idToClean) {
var stringToClean = jQuery.trim($('#' + idToClean).val());
//if there is no include/exclude strings then don't continue
if (stringToClean.length < 1) {
return (false);
}
//Replace characters that we dont want
stringToClean = stringToClean.replace(/[,]{2,}/g, ',').replace(/%/g, '').replace(/_/g, '').replace(/\r\n|\n|\r/g, ",");
//Split string to an array at every comma
var tempArr = stringToClean.split(' ');
var uniqueArray = new Array();
//search for duplicates, if found then delete
for (var i = 0; i < tempArr.length; i++) {
tempArr[i] = jQuery.trim(tempArr[i]);
if (tempArr[i] == '') {
tempArr.splice(i, 1);
i--;
}
if (uniqueArray[tempArr[i]] != undefined) {
tempArr.splice(i, 1);
i--;
}
uniqueArray[tempArr[i]] = '';
}
$('#' + idToClean).val(tempArr.join(','))
}