古怪的javascript php实现用php数据替换js中的数据

古怪的javascript php实现用php数据替换js中的数据,javascript,php,Javascript,Php,我正在研究其他人的遗留代码,他们有一个奇怪的实现,他们执行以下操作: - load javascript file into php - perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript 我的问题是$intro数据包含回车符,所以当我用mysql数据将字符串替换到javascript中时,它会导致javascript中断 以下是javascri

我正在研究其他人的遗留代码,他们有一个奇怪的实现,他们执行以下操作:

- load javascript file into php
- perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript
我的问题是$intro数据包含回车符,所以当我用mysql数据将字符串替换到javascript中时,它会导致javascript中断

以下是javascript中的一行代码:

 dialog.i_intro.value="$intro";
dialog.i_intro.value=dialog.i_intro.value.replace('--carriage--','\r\n');
下面是php中的一行代码:

$ln=str_replace("\$intro",$intro,$ln);
以下是数据:

 dialog.i_intro.value = "Hello World
 Hello World
 Hello World";
我如何解决这个问题

更新 我需要javascript中的回车

我正在尝试以下方法:

- load javascript file into php
- perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript
在php中:

$intro = str_replace("\r\n","--carriage--",$intro);
在Javascript中:

 dialog.i_intro.value="$intro";
dialog.i_intro.value=dialog.i_intro.value.replace('--carriage--','\r\n');
但有些东西不适合这个

扩展更新

我已将所有换行符替换为html换行符。我发现代码正在使用eval解释js。这是我当前的intro变量的javascript输出


下一步该怎么办?

Javascript至少目前在浏览器中部署了Javascript,在ES6中应该更容易,因为它不会非常直观地处理字符串中的行尾。你最好的办法是逃离马车返回,如

 dialog.i_intro.value = "Hello World \
 Hello World \
 Hello World";
这不会触发错误,并将保留所需的换行符

要实现,请尝试以下内容,而不是当前的PHP字符串替换行:

$intro = str_replace("\n"," \\\n",$intro); 

可以使用正则表达式将“\n”或“\n\r”字符替换为。或空字符串

dialog.i_intro.value = i_intro.value.replace(/\n\r?/g, '<br />');

用空替换\r\nstring@Tushar看看updateI添加了一个我测试过的示例,试试看它是否解决了您的问题。