Bry*_*eld 114 string multiline node.js
随着node.js的兴起,JavaScript中的多行字符串变得越来越必要.
我已经知道你可以\n\在每一行的末尾使用,这不是我想要的.
Rob*_*sch 139
从ES6(以及大于v4的Node版本)开始,Javascript中添加了一个新的"模板文字"内在类型(用反向标记"`"表示),它也可用于构造多行字符串,如:
`this is a
single string`
Run Code Online (Sandbox Code Playgroud)
评估为:'this is a\nsingle string'.
请注意,在第一行的末尾的换行符被包括在生成的字符串英寸
添加了模板文字以允许程序员构造字符串,其中值或代码可以直接注入字符串文字而无需使用util.format或其他模板,如:
let num=10;
console.log(`the result of ${num} plus ${num} is ${num + num}.`);
Run Code Online (Sandbox Code Playgroud)
将打印"10加10的结果为20".到控制台.
较旧版本的节点可以使用"行继续"字符,允许您编写多行字符串,例如:
'this is a \
single string'
Run Code Online (Sandbox Code Playgroud)
评估为:'this is a single string'.
请注意,第一行末尾的换行符不包含在结果字符串中.
Vij*_*jey 46
多行字符串是JavaScript的当前部分(自ES6起),并在node.js v4.0.0及更高版本中受支持.
var text = `Lorem ipsum dolor
sit amet, consectetur
adipisicing
elit. `;
console.log(text);
Run Code Online (Sandbox Code Playgroud)
Rob*_*ert 39
当你的意思是多线字符串时,你究竟在寻找什么?
你在寻找类似的东西:
var str = "Some \
String \
Here";
Run Code Online (Sandbox Code Playgroud)
哪个会打印成"Some String Here"?
如果是这样,请记住以上是有效的Javascript,但这不是:
var str = "Some \
String \
Here";
Run Code Online (Sandbox Code Playgroud)
有什么不同?之后的空间\.有趣的调试.
看看node.js 的mstring模块.
这是一个简单的小模块,可以让您在JavaScript中使用多行字符串.
这样做:
var M = require('mstring')
var mystring = M(function(){/***OntarioMining andForestryGroup***/})要得到
mystring === "Ontario\nMining and\nForestry\nGroup"这就是它.
工作原理
在Node.js中,您可以调用.toString函数的方法,它将为您提供函数定义的源代码,包括任何注释.正则表达式可以获取注释的内容.是的,这是一个黑客.灵感来自Dominic Tarr的一次性评论.
注意:该模块(截至2012/13/11)在结束前不允许空白***/,因此您需要自己进行破解.
除了人们在这里发布的内容之外,我听说连接可以比加入现代javascript vms快得多.含义:
var a =
[ "hey man, this is on a line",
"and this is on another",
"and this is on a third"
].join('\n');
Run Code Online (Sandbox Code Playgroud)
会慢于:
var a = "hey man, this is on a line\n" +
"and this is on another\n" +
"and this is on a third";
Run Code Online (Sandbox Code Playgroud)
在某些情况下.http://jsperf.com/string-concat-versus-array-join/3
另外,我发现这是Coffeescript中更具吸引力的功能之一.是的,是的,我知道,仇敌会讨厌.
html = '''
<strong>
cup of coffeescript
</strong>
'''
Run Code Online (Sandbox Code Playgroud)
它特别适合html片段.我不是说它有理由使用它,但我确实希望它会落在ecma土地上:-(.
玩笑
除了接受的答案:
`this is a
single string`
Run Code Online (Sandbox Code Playgroud)
其计算结果为:'这是一个\ns单个字符串'。
如果你想使用字符串插值但没有换行,只需像普通字符串一样添加反斜杠:
`this is a \
single string`
Run Code Online (Sandbox Code Playgroud)
=> '这是一个字符串'。
请记住,手动空格是必要的:
`this is a\
single string`
Run Code Online (Sandbox Code Playgroud)
=> '这是单个字符串'
| 归档时间: |
|
| 查看次数: |
96605 次 |
| 最近记录: |