2013-11-23 42 views
0

我有這樣的文字在我的MySQL數據庫:自動換行PHP的> JavaScript的


你怎麼樣?

工作(PHP):

echo $row['text']; 

現在的工作:

<script> 
test = "<?php echo $comment; ?>"; 
document.writeln(test.parseURL().parseUsername().parseHashtag()); 
</script> 

的錯誤是什麼打印。

JavaScript函數:

<script> 
String.prototype.parseURL = function() { 
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) { 
return url.link(url); 
}); 
}; 

String.prototype.parseUsername = function() { 
return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) { 
    var username = u.replace("@","") 
    return u.link("http://url.com/"+username); 
}); 
}; 

String.prototype.parseHashtag = function() { 
return this.replace(/[#]+[A-Ö–a-ö0-9-_]+/g, function(t) { 
    var tag = t.replace("#","") 
    return t.link("/?p=tagga&q="+tag); 
}); 
}; 
</script> 

但是,如果我有沒有換行符所以它的工作原理 嗨!你好嗎?

有人知道我該如何解決這個問題嗎?

回答

2

總是看看呈現的輸出。在這種情況下:

test = "Hi 
how are you?"; 

這顯然是無效的(未終止的字符串常量)。

將PHP變量轉儲到JS時,始終使用json_encode

test = <?=json_encode($row['text'])?>; 

輸出:

test = "Hi\nhow are you?"; 
0

的Javascript文字多行字符串都沒有像在PHP多線串。要麼逃離換行,例如或者使其成爲一條單線,例如,

var text = 'Hi\nHow are you?'; 
+0

要保存在數據庫中: $ text = mysql_real_escape_string($ _POST ['tag']); 應該用什麼代碼代替? – Andreas

+0

保存不是問題。這是輸出。你需要確保它是正確的JavaScript。 – Bart