42 javascript string
我有一个包含新行的字符串.我想将它们转换为HTML <br>
,但我很难检测到它们.
想象一下像这样设置的JavaScript字符串:
var foo = "Bob
is
cool";
Run Code Online (Sandbox Code Playgroud)
它们是我需要检测的那种新线.他们没有使用\n
特殊字符 - 它们只是简单的格式.
Ran*_*Dev 64
它不起作用的原因是因为javascript字符串必须在下一个换行符之前终止(不是很\n
明显).\n
存在的原因是允许开发人员以简单的方式将换行符(ASCII:10)放入其字符串中.
当你有一个看起来像这样的字符串:
//Note lack of terminating double quote
var foo = "Bob
Run Code Online (Sandbox Code Playgroud)
您的代码将在此时出现语法错误并停止运行.
如果你希望有一个跨越多行的字符串,你可以\
在终止该行之前插入一个反斜杠字符,如下所示:
//Perfectly valid code
var foo = "Bob \
is \
cool.";
Run Code Online (Sandbox Code Playgroud)
但是,该字符串不会\n
在字符串被分成单独行的位置包含字符.将换行符插入字符串的唯一方法是插入值为10的字符,其中最简单的方法是\n
转义字符.
var foo = "Bob\nis\ncool.";
Run Code Online (Sandbox Code Playgroud)
Dav*_*oua 33
更新:我刚刚在JavaScript-ES6中遇到了一个名为Template literals的精彩语法设计.您想要做的事情可以使用`
(反引号或重音符号)来完成.
var foo = `Bob
is
cool`;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,foo === "Bob\nis\ncool"
是真的.
为什么设计师决定` ... `
可以不受限制,但在其中使用换行符是非法的" ... "
并且' ... '
是非法的.
确保定位浏览器支持ES6指定的Javascript实现.
PS这个语法有一个非常酷的功能,类似于PHP和更多的脚本语言,即" 标记模板文字 ",你可以在其中有这样的字符串:
var a = 'Hello', b = 'World';
console.log(`The computer says ${ a.toUpperCase() }, ${b}!`);
// Prints "The computer says HELLO, World!"
Run Code Online (Sandbox Code Playgroud)
检查\n
或\r
或\r\n
.
新行有几种表示形式,请参阅http://en.wikipedia.org/wiki/Newline#Representations
归档时间: |
|
查看次数: |
197918 次 |
最近记录: |