2014-04-22 6 views
0

의 제거는 나는 다음과 같은 형식의 문자열을 가지고 :정규식 문자열 - 일치하는 요소

apple|mango|banana|pineapple 
(or) 
mango|banana|pineapple 
(or) 
banana|pineapple 

나는이 문자열에서 일치하는 요소를 제거 할 것 - 일치하는 요소가 망고 경우처럼.

나는 같은 문자열이 필요합니다 apple|banana|pineapple

을 경우 사과 :

mango|banana|pineapple. 

내가, 내가 정규식을 사용한다는 것을 어떻게해야합니까, 내가 그 전에 파이프를 제거해야 할 요소를 일치시키기 위해, 여기서 일치하는 요소는 동적입니다. 도와주세요.

+0

일치하는 항목에서 변수 문자열을 제거하기 만 원하십니까? 적절한 자리에서 문자열 형식의 변수를 정규 표현식에 연결하기 만하면됩니다. 아니면 여기에 뭔가 빠졌나요? – Matthew

+0

표현의 상단에 논리가 필요할 것입니다. 사용하는 언어는 무엇입니까? – Sam

+0

jquery/js에서이 작업을 수행하려고합니다. – user3534071

답변

0

문자열을 배열로 분할하고 항목을 제거한 다음 다시 결합 할 수 있습니다.

var s = 'apple|mango|banana|pineapple'; 
var itemToRemove = 'apple'; 
var items = s.split('|'); 
var itemToRemoveIndex = $.inArray(itemToRemove, items); 
if (itemToRemoveIndex != -1) { 
    items.splice(itemToRemoveIndex, 1); 
    s = items.join('|'); 
} 

데모 : 당신이 String.split() 자바 스크립트 방법을 찾고있는 것처럼 http://jsfiddle.net/xerA9/

0

보인다.

var fruit = "apple|mango|banana|pineapple"; 
var fruitArr = fruit.split("|"); // ["apple","mango","banana","pineapple"] 

그런 다음 그것을 제거 Array.indexOf()Array.splice() 방법을 사용할 수 있습니다. 일치하는 항목을 찾은 후 indexOf이 중단되므로 발견 된 첫 번째 인스턴스 만 제거됩니다. splice로 수정 후

fruitArr.splice(fruitArr.indexOf("mango"), 1); 
// Returns ["mango"] but fruitArr has been modified to ["apple","banana","pineapple"] 

fruitArr, 할 수있는이 같은 재 통합 :

fruitArr.join("|"); // "apple|banana|pineapple" 

this-의보다 안전 장치 버전에 대한 참조 바카의 대답하지만 jQuery를에 의존한다는 것을 알고 .

0

당신은 대체 간단한 다음과 같은 방법을 시도해 볼 수도 있습니다 다음 후

youString.replace(/\|*mango/g, '') 

'*'를 '|' 그것이 망울의 시작 부분에 있다면 망고를 잡을 것입니다.

+0

'mango | apple'의 경우'| apple'을 생성하고'apple'을 생성해야합니다. '\ bmango \ || \ | mango \ b' regex를 사용할 수 있지만 동적 정규 표현식을 만들 필요가 없으므로 분할/결합이 더 간단합니다. –

+0

당신은 정규식에 맞습니다. 추가 '|' 처음부터 제거 할 때. –

+0

나는 동적 정규 표현식을 사용하는 것이 분할/결합 접근법보다 훨씬 깔끔한 것은 아니지만 정규 표현식이 선호되는 경우 다음과 같이 작동한다는 것을 알고 있습니다. var pattern = "\\ b"+ strToRemove + "\\ || \\ | " + strToRemove + "\\ b"; var reg = new RegExp (pattern, "g"); str.replace (reg, ''); –