2017-10-25 6 views
0

チャットでHTMLコードを書くときに問題が発生します。これは危険で醜いです.HtmlとConeファイルをブロックするjavascriptやhtmlコードはありますか?チャットでHTMLが表示される

テキスト入力時にHTMLコード(例:コードが動作する)が書かれていると、テキストを貼り付ける方法やコードがいくつあるのですか?ここで

が入力されている:私は、コードをコメントしました

<input type="text" name="chat" id="chattbox" placeholder="Ask what you want." onfocus="placeHolder()">

var messages = [], 
    lastUserMessage = "", 
    botMessage = "", 
    botName = 'Jacob', t 
    talking = true; 

function chatbotResponse() { 
    talking = true; 
    botMessage = "non ho capito"; 

var hi = ['Ciao {$mybb->user['username']}','mhhh','forte','haha','Chi sei?', 'mi vuoi bene?', 'Sono un bot questo non significa che io sia scemo', 'grande', 'boh', 'bah...', 'sei forte haha', 'ti piace stertix?', 'ok','se lo dici tu.','come vuoi', 'ho fame', 'Mi sto pulendo il naso... Quello che non ho :(', 'Hai ragione', 'Sei un grande', 'aaahhhhhhh!!!', 'mlmlml', 'cavolo', 'wow', 'figo', 'come mai?', 'forse', 'Si', 'No', 'mi piace parlare con te <3', 'spacco bottilia ammazzo familia', 'ti amo', 'ti voglio bene', 'che canzone ti piace?', 'che cantante ti piace?', 'so che pensi che sia stupido ma non lo sono.', 'ma lo sarai tu.', 'va bene', 'bello', 'molto', 'molto bello', 'cosa ne pensi di stertix?', ':D', ':)', ';)', '<3', ':O', 'Che fai?', 'quale?', 'quale', 'eh', 'grave', 'eccellente', 'giusto', 'grazie', 'eccellente', 'ottimo', 'ue guaglio bell stu orolog',]; 
botMessage = hi[Math.floor(Math.random()*(hi.length))]; 

var n = lastUserMessage.search(/\b(gatto|gatti)\b/i); 
if (n !== -1) { 
    botMessage = 'Amo i gatti!'; 
} 

var n = lastUserMessage.search(/\b(ciao|salve|ehi|we)\b/i); 
if (n !== -1) { 

var vr = ['Ciao {$mybb->user['username']}!', 'Ciao fra', 'Ciao amico', 'ehi {$mybb->user['username']}!', 'We {$mybb->user['username']}!',]; 
    botMessage = vr[Math.floor(Math.random()*(vr.length))]; 

} 


var n = lastUserMessage.search(/\b(bene)\b/i); 
if (n !== -1) { 
    var vr = ['Ottimo','Meglio cosi', 'Mi fa piacere',]; 
    botMessage = vr[Math.floor(Math.random()*(vr.length))]; 
} 


var patt = /\b(cani)\b/i; 
var result = patt.exec(lastUserMessage); 
if (result) { 
    botMessage = 'Amo i ' + result[0]; 
} 

var n = lastUserMessage.search(/\b(animali)\b/i); 
if (n !== -1) { 
    botMessage = 'Amo gli animali!'; 
} 

var n = lastUserMessage.search(/\b(come va|come stai)\b/i); 
if (n !== -1) { 
    var vir = ['Benissimo, tu?','Bene dai...', 'bene tu?', 'male, tu?', 'Malissimo, tu?', 'diciamo, tu?',]; 
    botMessage = vir[Math.floor(Math.random()*(vir.length))]; 
} 


var n = lastUserMessage.search(/\b(che fai|che stai facendo)\b/i); 
if (n !== -1) { 
    var vuyr = ['Nulla, parlo con te, tu che fai?','Niente, tu?', 'Mi annoio, tu?', 'Mi vedo film zozzi, tu?', 'cerco un modo per conquistare il mondo... na scherzo sono un bot pirla, tu che fai?', ]; 
    botMessage = vuyr[Math.floor(Math.random()*(vuyr.length))]; 
} 
+1

はどのようにして、出力メッセージをやりますか? –

+0

ユーザが入力を消毒することができます –

+0

javascriptで動くのはチャットボットですが、テキストにはHTMLを書くコードが表示されます –

答えて

0

- 基本的には、ユーザーが後でいくつかの点で、その後、<とを入力した場合、タイプ>それらの間のすべてが正規表現によって取り除かれます。あなたが描いていることから、これはあなたが探しているもののようです。

var filterHtmlCodes = function() { 
 
    /***** 
 
    * Here, we're going to go through and strip 
 
    * any tags -- words wrapped in <>. Thus, 
 
    * users can still enter either symbol, but 
 
    * entering both will immediately strip the 
 
    * tag value. I'm triggering on every 
 
    * keyup, but it could as easily be done on every 
 
    * change, so as to block copy/paste, for example. 
 
    *****/ 
 
    myChatEl.value = myChatEl.value.replace(/<(?:.|\n)*?>/gm, '') 
 
}; 
 

 
// And I prefer to add my listeners outside of my HTML. 
 
var myChatEl = document.querySelector("#chattbox"); 
 
myChatEl.addEventListener("keyup", filterHtmlCodes)
<input type="text" name="chat" id="chattbox" placeholder="Ask what you want.">

+0

コードの動作を理解できませんでした –

+0

キーが離されるたびに、filterHtmlCodes関数がトリガされます。すべてのコードは#chattbox要素の値を文字列として受け取り、<...>で囲まれたテキストをフィルタするためにregexを実行します。したがって、HTMLタグかXMLタグなのかは実際には気にしません。それは<>がタグを表すと仮定します。より多くの正規表現を見てください。 https://javascript.info/regular-expressions – Snowmonkey

関連する問題