2017-05-03 243 views
2

我想使用JavaScript的Javascript替換字符串

我嘗試這一個改變這種

[s=http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string]Text[/s] 

這個

<a href="http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string">Text</a> 

<script> 
var str = "[s=/site_menu.xhtml?get-d=4%2027&get-id=315&get-title=DanMachi%20Season%202&get-main=DanMachi]DanMachi Season 2[/s]"; 
var res = str.replace("[s=", '&lt;a href="'); 
var ser = res.replace("[/s]", "&lt;/a&gt;"); 
var serr = ser.replace("]", ':admin-hash-amp:"&gt;'); 
document.write(serr); 
</script> 

回答

1

你可能要考慮簡單地創建,將封裝所有這一切爲你的功能,特別是如果你計劃內的應用程序的多個領域使用:

function toHyperLink(input){ 
    return input.replace('[s=','<a href="') 
       .replace(']','">') 
       .replace('[/s]','</a>'); 
} 

var input = '[s=http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string]Text[/s]'; 
 
console.log(`Input: ${input}`); 
 
console.log(`Output: ${convertToHyperlink(input)}`); 
 

 
function convertToHyperlink(input) { 
 
    return input.replace('[s=', '<a href="').replace(']', '">').replace('[/s]', '</a>'); 
 
}

0

在你做轉換之後,你應該創建一個元素,而不是寫出來。

var str = "[s=http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string]Text[/s]"; 
var res = str.replace("[s=", '&lt;a href="'); 
var ser = res.replace("[/s]", "&lt;/a&gt;"); 
var serr = ser.replace("]", '"&gt;');  

var text = serr.slice(serr.indexOf("&gt;") + 4, serr.indexOf("&lt;/a&gt")) 
var href = serr.slice(serr.indexOf("href=\"") + 6, serr.indexOf("\"&gt")) 

var link = document.createElement("a"); 
link.text = text; 
link.href = href; 

document.getElementById("myDIV").appendChild(link); 
0

試試這個

var str = "[s=http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string]Text[/s]"; 
var r = str.replace(/\[s=(.*?)\](.*?)(\[\/s\])/gi,"<a href='$1'>$2</a>"); 
document.write(r); 
0

我猜你也可以不喜歡;

var str = "[s=http://stackoverflow.com/questions/ask?title=Javascript%20replace%20a%20string]Text[/s]", 
 
    res = str.replace(/\[s(.+)\](.+)\[\/s\]/, "<a href$1>$2</a>"); 
 
console.log(res);

+0

我想text改變這一點點text 請幫助 –