现在,我正在使用CMS在"设置"中显示textarea的内容。页面,在另一个页面上,但内容被复制到一些jQuery代码中:
$('textarea#envoi_contrat_conf').val('<cms:pages masterpage="gabarits.php" page_name="envoi-contrat-conferencier"><cms:show gabarit_content/></cms:pages>');
<cms:pages></cms:pages>
标签之间的内容是&#34;设置&#34;中的文本区域中保存的内容。页。
但是现在,如果我在“设置”页面的文本区域输入此内容:
Hello
This is
A test
它将以相同的方式显示,在jQuery代码中保持换行符。所以它会打破它。我的代码看起来像这样:
$('textarea#envoi_contrat_conf').val('Hello
This is
A test');
我需要的是确保将所有内容插入到&#34; val&#34; section,替换换行符,一旦在textarea中复制,仍会保留换行符。
如果这样的事情会起作用,我会很好:
$('textarea#envoi_contrat_conf').val('Hello<br>This is<br>A test');
但<br>
在textarea内部无效。
有什么想法吗? 非常感谢!
有人联系到与我的问题无关的另一个话题。
另一位用户指出我正在寻找&#34; \ n&#34;而不是实际的换行符。谢谢他的帮助。
但现在我需要知道如何用&#34; \ n&#34;替换代码中的实际换行符。代替。由于它是CMS生成的内容,我无法对一个句子进行硬编码。因此,我需要确保即使用户在textarea内容中进行换行,它也会显示为&#34; \ n&#34;在jQuery代码中而不是代码中的实际换行符。
我试过了:
$('textarea#envoi_contrat_conf').val().replace(/\r\n|\r|\n/g,'\n');
成功地允许我用其他东西替换换行符,但是\ n要按原样打印,而不是渲染。感谢
答案 0 :(得分:1)
var str = `${$('textarea#envoi_contrat_conf').val()}`
不确定您在何处或如何获取具有多个换行符的字符串,但有一种方法可以在代码中使用此类字符串,而无需在整个过程中的任何位置进行修改。
但是你有这个字符串,它看起来像这样:
"first segment
second segment
third segment"
将字符串存储在变量中,并通过将变量包装在`${...}`
` $ {
变量中的多行字符串或函数返回
} `
注意:严重重音键(又名反引号):`位于每个QWERTY键盘的左上角(通常在下方) esc 键。)
这是 如何 ,现在是 为什么 。 Literal Strings是用单引号或双引号括起来的字符串的表示,是一种合胞的噩梦。模板文字表示包含在严重重音符号中的字符串,并具有语法糖,可以纠正Literal字符串语法导致的问题。一个重要的改进是字符串的中断不会破坏它的价值。
`text line 1
text line 2`;
"text line 1\n"+
"text line 2";
因此将字符串值包装在反引号中会使其成为模板文字。 ${
... }
组合将值或表达式插入到TL中。比较:
模板文字插值
`Template Literal interpolation: ${X} is easier to read and write, and " and ' are just normal characters`;
文字字符串连接
"Literal String concatenation: '+X+' is harder to read and write, and \" and \' have equal meaning so they must be escaped or used in nested combinations."
var str = `${$('.text0').val()}`;
$('.text1').val(str);
<textarea class='text0' rows='5'>
Hello
This is
A test
</textarea>
<textarea class='text1' rows='5'></textarea>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
知道了!
这是我使用的代码:
$('textarea#envoi_contrat_conf').val().replace(/\r\n|\r|\n/g,"\\n");
额外的反斜杠是第一个反斜杠,需要打印出来。 感谢Tibrogargan的帮助