2016-07-12 1 views
0

웹 사이트의 여러 단어를 다른 단어로 바꾸고 싶습니다. 즉, source 단어의 모든 인스턴스를 찾고 target 단어로 바꾸는 데 관심이 있습니다.자바 스크립트로 바꿔 쓰레기 더미에서 산을 만드십시오.

샘플 케이스 :

소스 | 대상

퍼지게 => 산

녹색 => 회색

구글 =><a href="http://google.com">

샤샤 => 모니카

축구이 다소> 축구

+0

'ctrl-f'? 코드 기반에서이 작업을 수행 할 수 있습니까? – depperm

+0

javascript의 정규 표현식을 사용하여 검색하고 바꿀 수있는 프로그램을 작성할 수 있습니다. 위에서 언급 한 것처럼 모든 파일에서 notepad ++ 및 ctrl + f와 같은 일부 편집기를 사용할 수있는 또 다른 방법이 있습니다. – WitVault

+0

현재 각 대체품에 대해 다음과 같이 작업하고 있습니다. https://jsfiddle.net/p4Lmea6v/ 하지만 첫 번째 게시물 에서처럼 많은 대체물이 필요합니다. – Steelclover

답변

0

var body = document.querySelector('body') 
 

 
function textNodesUnder(el){ 
 
    var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false); 
 
    while(n=walk.nextNode()) a.push(n); 
 
    return a; 
 
} 
 

 
function doReplacements(txt){ 
 
    txt = txt.replace(/sascha/gi, 'monika') 
 
    txt = txt.replace(/mountain/gi, 'molehill') 
 
    txt = txt.replace(/football/gi, 'soccer') 
 
    txt = txt.replace(/google/gi, '<a href="http://www.google.com">google</a>') 
 
    console.log(txt) 
 
    return txt 
 
} 
 

 
var textnodes = textNodesUnder(body), 
 
    len = textnodes.length, 
 
    i = -1, node 
 

 
console.log(textnodes) 
 

 
while(++i < len){ 
 
    node = textnodes[i] 
 
    
 
    node.textContent = doReplacements(node.textContent) 
 
}
<div>Mountains of Sascha</div> 
 
<h1>Playing football, google it.</h1> 
 
<p>Sascha Mountain football google</p>
는 JS이다

function replaceWords() { 
var toReplace = [ 
    ["Green","Grey"], 
    ["Google","<a href='http://google.com'>"] 
]; 
var input = document.getElementById("content").innerHTML; 
console.log("Input: " + input); 
for (var i = 0; i < toReplace.length; i++) { 
    var reg = new RegExp(toReplace[i][0],"g"); 
    input = input.replace(reg,toReplace[i][1]); 
} 
document.getElementById("content").innerHTML = input; 

};

replaceWords();

+0

은 매력을 좋아합니다 - thanks – Steelclover

+0

단어가 HTML 속성에 나타나거나 HTML 태그의 하위 문자열 인 경우 어떻게됩니까? DOM을 반복하고 텍스트 노드 만 바꾸는 것이 좋습니다. –

1

입니다 = 절반의 대답. 그것은 기본적인 과정을 보여 주지만, 이와 같은 과정에서 내재 된 어려움들 중 일부를 또한 보여줍니다. 대문자 사용을 감지하고 대체 형식을 적절히 포맷하는 것은 조금 집중적 일 수 있습니다 (사례 별 사례에서 How can I test if a letter in a string is uppercase or lowercase using JavaScript?). 또한 텍스트 노드를 처리 할 때 innerHTML은 옵션이 아니므로 Google 대신 텍스트가 HTML 대신 대체됩니다.

TLDR - 자바 스크립트를 사용하지 않는 다른 방법이 있다면, 그렇게하십시오. 여기

관련 문제