ウェブサイトの複数の単語を他の単語に置き換えたいつまり、source
単語のすべてのインスタンスを検索し、target
単語に置き換えることに興味があります。JavaScriptを山形に置き換えて山を作る
サンプルケース:
ソース | ターゲット
モグラ塚=>マウンテン
グリーン=>グレー
グーグル=><a href="http://google.com">
サシャ=>モニカ
サッカー=>サッカー
ウェブサイトの複数の単語を他の単語に置き換えたいつまり、source
単語のすべてのインスタンスを検索し、target
単語に置き換えることに興味があります。JavaScriptを山形に置き換えて山を作る
サンプルケース:
ソース | ターゲット
モグラ塚=>マウンテン
グリーン=>グレー
グーグル=><a href="http://google.com">
サシャ=>モニカ
サッカー=>サッカー
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();
は魅力のようです - ありがとう – Steelclover
あなたの言葉がHTML属性に現れたり、HTMLタグの部分文字列などならどうしますか?私は、DOMを繰り返し、テキストノードのみを置き換えることをお勧めします。 –
これは多少あります半分の答えのこれは基本的なプロセスを示していますが、このようなプロセスにおける固有の困難のいくつかを示しています。大文字を検出して置換えを適切にフォーマットするのは多少集中的です(ケースバイケースのHow can I test if a letter in a string is uppercase or lowercase using JavaScript?など)。また、テキストノードを扱う場合、innerHTMLはオプションではないので、Googleの代わりはHTMLの代わりにプレーンテキストとして出力されます。
TLDR - これを行うにはJavaScriptを使用しない別の方法がある場合は、そのようにしてください。ここ
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>
'ctrl-f'?あなたはコードベースでこれを行うことができますか? – depperm
javascriptの正規表現を使用して検索と置換を行うプログラムを書くことができます。上記のようにnotepad ++やctrl + fなどのエディタを使用する別の方法もあります。 – WitVault
現在、私は交換のたびにこれを使用しています: https://jsfiddle.net/p4Lmea6v/ しかし、最初の投稿のように多くの置換えが必要です。 – Steelclover