웹 사이트의 여러 단어를 다른 단어로 바꾸고 싶습니다. 즉, source
단어의 모든 인스턴스를 찾고 target
단어로 바꾸는 데 관심이 있습니다.자바 스크립트로 바꿔 쓰레기 더미에서 산을 만드십시오.
샘플 케이스 :
소스 | 대상
퍼지게 => 산
녹색 => 회색
구글 =><a href="http://google.com">
샤샤 => 모니카
이축구이 다소> 축구
웹 사이트의 여러 단어를 다른 단어로 바꾸고 싶습니다. 즉, source
단어의 모든 인스턴스를 찾고 target
단어로 바꾸는 데 관심이 있습니다.자바 스크립트로 바꿔 쓰레기 더미에서 산을 만드십시오.
샘플 케이스 :
소스 | 대상
퍼지게 => 산
녹색 => 회색
구글 =><a href="http://google.com">
샤샤 => 모니카
이축구이 다소> 축구
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>
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();
은 매력을 좋아합니다 - thanks – Steelclover
단어가 HTML 속성에 나타나거나 HTML 태그의 하위 문자열 인 경우 어떻게됩니까? DOM을 반복하고 텍스트 노드 만 바꾸는 것이 좋습니다. –
입니다 = 절반의 대답. 그것은 기본적인 과정을 보여 주지만, 이와 같은 과정에서 내재 된 어려움들 중 일부를 또한 보여줍니다. 대문자 사용을 감지하고 대체 형식을 적절히 포맷하는 것은 조금 집중적 일 수 있습니다 (사례 별 사례에서 How can I test if a letter in a string is uppercase or lowercase using JavaScript?). 또한 텍스트 노드를 처리 할 때 innerHTML은 옵션이 아니므로 Google 대신 텍스트가 HTML 대신 대체됩니다.
TLDR - 자바 스크립트를 사용하지 않는 다른 방법이 있다면, 그렇게하십시오. 여기
'ctrl-f'? 코드 기반에서이 작업을 수행 할 수 있습니까? – depperm
javascript의 정규 표현식을 사용하여 검색하고 바꿀 수있는 프로그램을 작성할 수 있습니다. 위에서 언급 한 것처럼 모든 파일에서 notepad ++ 및 ctrl + f와 같은 일부 편집기를 사용할 수있는 또 다른 방법이 있습니다. – WitVault
현재 각 대체품에 대해 다음과 같이 작업하고 있습니다. https://jsfiddle.net/p4Lmea6v/ 하지만 첫 번째 게시물 에서처럼 많은 대체물이 필요합니다. – Steelclover