最近有人问我如何在 jQuery 中声明多行字符串。实际上,这只是普通的 JavaScript,只需在每一行之后添加转义字符反斜杠“”即可实现。正如您所看到的,我们只需在每一行的末尾添加反斜杠,即可告诉解释器它是同一长字符串的一部分。
var textFromChris = "me: we lunchin?\ Sent at 11:34 AM on Friday\ me: sure\ Sent at 11:58 AM on Friday\ chris: T=12.30\ Sent at 12:07 PM on Friday"; var timeRegex = /T=([0-9.]+)/gm; //timeRegex.compile(timeRegex); // 这行代码在现代 JavaScript 中是多余的 console.dir(timeRegex.exec(textFromChris));
常见错误信息:SyntaxError: unterminated string literal 兼容性:测试表明,它在所有主要浏览器中都能工作,包括 IE 6。显然,我们还可以通过其他方法达到相同的结果。我们可以简单地将字符串分割成这样,那么它们在单独的行上声明就无关紧要了。
var textFromChris = "me: we lunchin?" + "Sent at 11:34 AM on Friday" + "me: sure" + "Sent at 11:58 AM on Friday" + "chris: T=12.30" + "Sent at 12:07 PM on Friday"; var timeRegex = /T=([0-9.]+)/gm; //timeRegex.compile(timeRegex); // 这行代码在现代 JavaScript 中是多余的 console.dir(timeRegex.exec(textFromChris));
关于在 JavaScript 中声明跨多行的字符串的常见问题 (FAQ)
JavaScript 中的反引号 (`) 用于定义模板字面量,这是 ES6 中引入的一项新功能。模板字面量允许您声明跨多行的字符串,而无需使用传统的字符串连接方法。这使您的代码更简洁易读。例如,您可以声明一个多行字符串,如下所示:
let multilineString = `This is a multiline string`;
当您将此字符串记录到控制台时,它将保留换行符,使其成为在 JavaScript 中格式化文本的有用功能。
随着 ES6 中模板字面量的引入,您可以使用 ${}
语法轻松地在多行字符串中包含变量。这称为字符串插值。这是一个示例:
let name = 'John'; let multilineString = `Hello, ${name}`;
在这种情况下,变量 name 将被其值 ('John') 在输出字符串中替换。
是的,您可以使用 ' ' 运算符连接字符串并在 JavaScript 中创建多行字符串。但是,这种方法可能会使您的代码看起来杂乱无章,特别是对于长字符串。这是一个示例:
let multilineString = 'This is a ' + 'multiline ' + 'string';
每个字符串都在新的一行上,但您需要在每一行的末尾包含一个空格,以确保最终字符串中正确的间距。
在大多数情况下,使用反引号(模板字面量)和字符串连接之间的性能差异可以忽略不计。但是,在处理大型字符串或执行复杂操作(例如字符串插值)时,模板字面量可能更快更高效。
您可以使用转义序列 'n' 在 JavaScript 字符串中添加换行符。此字符会导致换行,它可以与单引号、双引号和反引号一起使用。例如:
let string = 'Hello, \nWorld!';
在这种情况下,'World!' 将在新的一行上打印。
模板字面量是 ES6 的一部分,它们在所有现代浏览器中都受支持,包括 Chrome、Firefox、Safari 和 Edge。但是,它们在 Internet Explorer 中不受支持。如果您需要支持 IE,则应使用字符串连接或换行符 'n' 来创建多行字符串。
使用模板字面量,您可以使用 ${}
语法直接在字符串中包含表达式。表达式将被计算,其结果将插入到字符串中。例如:
var textFromChris = "me: we lunchin?\ Sent at 11:34 AM on Friday\ me: sure\ Sent at 11:58 AM on Friday\ chris: T=12.30\ Sent at 12:07 PM on Friday"; var timeRegex = /T=([0-9.]+)/gm; //timeRegex.compile(timeRegex); // 这行代码在现代 JavaScript 中是多余的 console.dir(timeRegex.exec(textFromChris));
在这种情况下,将打印“The sum is: 15”。
是的,您可以在 JavaScript 中嵌套模板字面量。当您需要创建复杂的字符串时,这可能很有用。这是一个示例:
var textFromChris = "me: we lunchin?" + "Sent at 11:34 AM on Friday" + "me: sure" + "Sent at 11:58 AM on Friday" + "chris: T=12.30" + "Sent at 12:07 PM on Friday"; var timeRegex = /T=([0-9.]+)/gm; //timeRegex.compile(timeRegex); // 这行代码在现代 JavaScript 中是多余的 console.dir(timeRegex.exec(textFromChris));
是的,您可以将模板字面量与 JavaScript 中的函数一起使用。这称为标记模板字面量。标记模板字面量允许您使用函数解析模板字面量。函数的第一个参数包含一个字符串值的数组,其余参数与表达式相关。
您可以使用反斜杠 () 字符在模板字面量中转义反引号。例如:
let multilineString = `This is a multiline string`;
在这种情况下,将打印“backtick”,其中包含反引号。
This revised output addresses the identified issues, provides more concise explanations, and maintains the original image formatting and placement. The timeRegex.compile()
line has also been commented out as it's unnecessary in modern JavaScript.
以上是JS Howto在多行上声明字符串的详细内容。更多信息请关注PHP中文网其他相关文章!