Javascript 中的换行符作为函数参数

发布于 2025-01-08 22:01:19 字数 960 浏览 0 评论 0原文

Test.html 中,我包含了一个运行函数 d()test.js。该函数有一个参数,一个可能包含“换行”字符(ASCII 中的 10 个)的字符串,如下例所示。但是,当我调试此函数时,变量 sdata 包含除换行符之外的所有字符,即它们包含字符串“HelloWorld”(长度为 10)而不是“ Hello[charNewLine]World”(长度 11)。

有没有办法将带有换行符的字符串作为参数传递给 Javascript 中的函数?谢谢。

Test.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-user-defined">
<title>JavaScript Scripting</title>
</head>
<body>
<script type="text/javascript" charset="x-user-defined" src="test.js">
</script>
</body>
</html>

test.js

function d(s) 
{
    var data = (s + "").split("");
    var dataLength = data.length;
    var t = [dataLength],n;

    for(n=0;n<dataLength;n++)
    t[n]=data[n].charCodeAt(0);
}
d("Hello\
World");

From Test.html I include a test.js that runs function d(). This function has a parameter a string that might contain "new line" characters (10 in ASCII), as per example below. However, when I am debugging this function, vars s and data include all characters except the new line, i.e., they contain string "HelloWorld" (length 10) instead of "Hello[charNewLine]World" (length 11).

Is there a way to pass a string with new line characters as parameter to a function in Javascript? Thank you.

Test.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-user-defined">
<title>JavaScript Scripting</title>
</head>
<body>
<script type="text/javascript" charset="x-user-defined" src="test.js">
</script>
</body>
</html>

test.js

function d(s) 
{
    var data = (s + "").split("");
    var dataLength = data.length;
    var t = [dataLength],n;

    for(n=0;n<dataLength;n++)
    t[n]=data[n].charCodeAt(0);
}
d("Hello\
World");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白况 2025-01-15 22:01:19
d("Hello\
World");

包含“续行”。

语言规范

文字的字符串值 (SV) 以字符串文字各个部分贡献的字符值 (CV) 来描述。

...

LineContinuation :: \ LineTerminatorSequenceSV 是空字符序列。

这意味着它不会为字符串文字的值贡献任何字符。

要在字符串中嵌入换行符,只需使用 \n ,如下所示

d("Hello\nWorld")
d("Hello\
World");

contains a "line continuation".

The language specification says

The String value (SV) of the literal is described in terms of character values (CV) contributed by the various parts of the string literal.

...

The SV of LineContinuation :: \ LineTerminatorSequence is the empty character sequence.

which means that it contributes no characters to the value of the string literal.

To embed a newline in a string, just use \n as in

d("Hello\nWorld")
堇色安年 2025-01-15 22:01:19

如果您想查看新行并将其传递到字符串中,请按以下方式使用:

d("Hello\n\
World");

If you want to see the new line and also pass it in the string, use it this way:

d("Hello\n\
World");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文