はい、それを行うには String.replace(regex, replaceString) を使用してください。
次に例を示します。
var text = "You should visit StackOverflow. I found it on Wikipedia.";
var newText=text.replace(/stackoverflow/gi,
"<a href='http://www.stackoverflow.com/'>StackOverflow</a>");
はg
グローバルを表すため、すべてのインスタンスを置き換え、i
は大文字と小文字を区別しない検索を意味します。
「辞書」などの一般的な単語をリンクするdictionary.com
ために置き換える場合は、ユーザーが特別なタグを追加した場合にのみ置き換えたほうがよいでしょう。次に例を示します。
"You should visit StackOverflow. I found it on Wikipedia."
次のように書かれていない限り、リンクに置き換えるべきではありません。
"You should visit &StackOverflow. I found it on Wikipedia."
次に、メソッドは特別なシンボルを追加するだけで済みます。
また、次のような配列にデータを配置します。
var linkArray = [ ["StackOverflow", "http://www.stackoverflow.com/", "Description"],
["Wikipedia", "http://wikipedia.org/", "Free encyclopedia"] ];
次に、インスタンスを見つけて置き換えるループを作成します。
function addLinks(textInput) {
for (var i=0; i<linkArray.length; i++) {
textInput = addLink(textInput, linkArray[i]);
}
return textInput;
}
function addLink(textInput, link) {
var replaceString = "<a href=\"" + link[1] + "\" title=\""
+ link[2] + "\">"
+ link[0] + "</a>";
return textInput.replace(new RegExp("&"+link[0], "gi"), replaceString);
}