2017-10-26 4 views
0

クライアント側のユーザ入力のみをフォーマットし、サーバから返された&lt;br/&gt;<br/> html要素に置き換えます。Javascriptサーバからのrturnedデータを置き換えます

私はクライアントから

function replace_chat_tags(chat_body = '') { 
    return chat_body 
    .replace(/((http|ftp|scp)(s)?:\/\/[a-zA-Z0-9.?=\-&_/]+)/g, "<a href=\"$1\" target=\"_blank\">$1</a>") 
    .replace(/\b([A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4})\b/gi, "<a href=\"mailto:$1\">$1</a>") 
    .replace(/&lt;br\/&gt;/g, "<br/>"); 
} 

をURLとメールを交換するには、以下の機能を使用する形式のユーザー入力

function HtmlEncode(s){ 
    var el = document.createElement("div"); 
    el.innerText = el.textContent = s; 
    s = el.innerHTML; 
    return replace_chat_tags(s); 
} 

にJavaScriptコードの下に私の問題は、上記のコードで置き換えることはありません持っています&lt;&gt;それがまだ一致したら&lt;br\/&gt;を返す、誰かが私にこれに関するヒントを与えることができますか? HtmlEncode(chat.message)

+0

理由だけではなく、 '( "< BR/>"、 "
")置き換え'使わないのでしょうか?正規表現なし。 –

答えて

1

Regexは正しく構築されている必要があります。

k = "&lt;br/&gt" 
 

 
console.log(k.replace(new RegExp("&lt;br/&gt", "g"), "<br/>")); 
 

 
console.log(k.replace(new RegExp(/&lt;br\/&gt/, "g"), "<br/>"));

関連する問題