각각

2013-03-22 3 views
0

배열 요소 1. ABC 2. 다음이 포함되어 배열 요소의 각 occurance을 사업부 텍스트를 대체하는 방법 데프 3. GHI각각

사업부 텍스트 나 각 repalce 할

this is abc - def some text 

발생은 <p> abc</p>과 같습니다. 그래서 마지막 문자열은 아래와 같습니다.

this is <p>abc</p> - <p>def</p> some text 

나는 어레이 emements가 있습니다. div에 텍스트가 있어야합니다. arrary 요소의 각 ocurance를 루프없이 regex를 사용하여 div 텍스트로 대체하려고합니다. 나는 루프를 사용하여 그렙

jQuery.grep(Words, function (val) { 
    if (val != null && val != '') { 
     Str = Str.replace(val, "<span class='abc'>" + val + "</span>"); 
    } 
}); 

접근법 # 2를 사용하여 두 개의 approiaches

Approaach # 1을 사용하여 아래처럼했다.

$.each(Words, function (keyIndex, val) { 
    if (val != null && val != '') 
     Str = Str.replace(val, "<span class='abc'>" + val + "</span>"); 
}); 
+1

및 질문은? –

답변

1

무엇 데모

var string = 'this is abc - def some text '; 
var array = ['abc', 'def', 'ghi']; 

var regex = new RegExp('\\b' + array.join('\\b|\\b') + '\\b', 'g'); 

var as =string.replace(regex, function(a, b){ 
    return '<p>'+a+'</p'; 
}); 
console.log(as) 

에 대한 : Fiddle

+0

'var regex = new RegExp ('\\ b'+ array.join ('\\ b | \\ b') + '\\ b', 'g');'... – SMC

+0

우리가 만들고있는 것을 설명하십시오. 이 경우에는 정규 표현식'/ \ babc \ b | \ bdef \ b | \ bghi \ b/g'이 생성됩니다. 여기서 'abc'는 스페이스 또는 다른 단어 문자로 구분되어 –

+0

과 일치하게됩니다. [this] (http://jsfiddle.net/arunpjohny/68Jrc/1/) 예제에서는 솔루션이 –