Wordwrapping php-> JavaScript的

时间:2013-11-23 20:42:21

标签: javascript php document.write

我在mysql-database中有这个文本:

  

您好
  你好吗?

工作(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 个答案:

答案 0 :(得分:2)

始终查看渲染的输出。在这种情况下:

test = "Hi
how are you?";

这显然是无效的(未终止的字符串常量)。

将PHP变量转储到JS时,总是使用json_encode

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

输出:

test = "Hi\nhow are you?";

答案 1 :(得分:0)

Javascript文字多行字符串与PHP中的多行字符串完全不同。要么逃避换行,要么......

var text = 'Hi \
how are you?'

或者使它成为一行,例如

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