Разделенная строка JavaScript выделенный текст удалить
Как удалить фрагментированный текст из строки с помощью JavaScript
Пример строки:
var start = "World,Book,Pencil,Door";
Теперь, когда я выбираю любое из выбранных значений: "World"
Я хочу, чтобы результат был "Book,Pencil,Door"
,
// result = "Book,Pencil,Door";
1 ответ
Если вы спрашиваете, как удалить значение из строки, разделенной запятыми, попробуйте это...
var removeValue = function(list, value, separator) {
separator = separator || ",";
var values = list.split(separator);
for(var i=0; i<values.length; i++) {
if(values[i]===value) {
values.splice(i, 1);
return values.join(separator);
}
}
return list;
}
Если искомое значение найдено, оно удаляется и возвращается новый список с разделителями-запятыми. Если он не найден, возвращается старый список.
Другая версия... используя indexOf
var removeValue = function(list, value, separator) {
separator = separator || ",";
var values = list.split(separator);
var index = values.indexOf(value);
if(index >= 0) {
values.splice(index, 1);
return values.join(separator);
} else {
return list;
}
}
В принципе, с любой функцией вы отправляете список ("World,Book,Pencil,Door"
) в виде строки, значение для удаления ("World"
) как другая строка и что такое разделитель (","
для запятой... однако запятая также используется по умолчанию, поэтому ее можно отключить). Если значение для удаления не существует в списке, оно вернет список. Если он есть в списке, он будет удален.
Пример 1:
var final = removeValue("World,Book,Pencil,Door", "World");
// final = "Book,Pencil,Door"
Пример 2:
var final = removeValue("World,Book,Pencil,Door", "House");
// final = "World,Book,Pencil,Door"
Пример 3:
var final = removeValue("World|Book|Pencil|Door", "World", "|");
// final = "Book,Pencil,Door"
ОБНОВЛЕНИЕ:
jsFiddle: http://jsfiddle.net/rfornal/96awa2ht/