2015-01-03 3 views
-2

Как удалить фрагментарный текст внутри строки с JavaScriptJavascript разбить строку выделенного текста удалить

Пример Строка:

var start = "World,Book,Pencil,Door"; 

Теперь, когда я выбрать любого из выбранных значений: "World", Я хочу, чтобы результат был "Book,Pencil,Door".

// result = "Book,Pencil,Door"; 
+0

Вы спрашиваете, как сделать массив строк и возвращает массив с 1 меньшим количеством элементов в нем? Вы можете уточнить свой вопрос? – wmock

+0

Пожалуйста, поделитесь уже имеющимся кодом и покажите, что не работает. Мы с радостью поможем вам решить эту проблему. Возможно ответы, связанные с вашим вопросом: http://stackoverflow.com/questions/7142890/javascript-remove-an-array-element-by-value – Bjorn

ответ

0

Если вы спрашиваете, как удалить значение из строки, разделенные запятыми, попробуйте это ...

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" 

UPDATE:

jsFiddle: http://jsfiddle.net/rfornal/96awa2ht/

+0

Будет ли это похоже? var removeValue = функция (список, значение, разделитель) { var final = removeValue («Мир, книга, карандаш, дверь», «Мир»); separator = separator || ""; var values ​​= list.split (разделитель); var index = values.indexOf (значение); if (index> = 0) { values.splice (index, 1); return values.join (разделитель); } else { Лист возврата; } } – Selahattin

+0

Нет, removeValue - это функция ... первая строка также может быть записана как 'function removeValue (список, значение, разделитель) {' ... – rfornal

+0

'var final = removeValue (" World, Book, Pencil , «Дверь», «Мир»); 'выполняется в другом месте вашего кода, чтобы сгенерировать новый список с ** World **. – rfornal