Вы можете использовать что-то вроде этого:
var needle = 'blu';
var s = 'red; yellow; blue; geen; purple';
var a = s.split('; ');
var newArray = new Array();
for (var i = 0; i < a.length; i++) {
if (a[i].indexOf(needle) != -1) {
newArray.push(a[i]);
}
}
var result = newArray.join('; ');
alert(result);
Метод в основном такой, как описал Саймон, с одним дополнительным шагом - join
в конце, чтобы преобразовать результат обратно в строку.
Просто для удовольствия, вот сумасшедшее решение на основе регулярных выражений. Предупреждение: если ваш поисковый термин содержит специальные символы, их нужно будет экранировать. Я предполагаю, что поисковый термин будет содержать только не специальные символы:
var s = 'red; yellow; blue; geen; purple';
var result = ('; ' + s).replace(/;(?![^;]*blu)[^;]*(?=;|$)/g, '').substring(2);
alert(result);