首页 >web前端 >js教程 >JavaScript中的线路结尾

JavaScript中的线路结尾

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原创
2025-03-08 00:49:18926浏览

Line endings in Javascript

JavaScript中的线路结尾

>我今天花了很多时间与JavaScript的线路结尾作斗争,并最终取得了一些值得分享的结果 - 如果只是为了拯救其他开发人员从下降到同一调试的黑洞。

您可能知道,谦虚的线路断裂实际上具有三种形式,具体取决于操作系统正在进行破坏。在Unix机器上,单个Newline字符“ N”可以完成这项工作。在Mac上,使用了托架返回“ R”。 DOS和Windows都使用:“ RN”。如果您不知道要寻找什么,这是那些相对微妙的问题之一。

>

>今天,我的任务是构建JavaScript功能的简单问题,以将单个新线转换为文本方面的新线。我的第一次尝试看起来像:

var doubleenewlinesre = /([^n])n([^n]) /g; 功能doublenewlines(obj){ obj.value = obj.value.replace(doubleenewlinesre,“ $ 1nn $ 2”); } 双新线

上面的代码使用简单的正则表达式,该表达式找到了不是新线的所有实例,其次是newline,然后是其他不是新线的东西。然后,该模式的实例被相同的模式替换为中间的两个新线,而不是一个。
>在Windows,Linux和Mac上的Firefox中效果很好,因为Firefox将Newlines视为“ N”,无论其运行方式如何。它在IE上为Windows和IE打破了Macintosh,因为这些浏览器分别使用“ RN”和“ R”。

>

足够公平。解决此问题的通常解决方案是在运行转换之前将线路结尾归一化,通过将三个组合替换为您的首选项的单个结尾(在我的情况为“ n”)中。这是我第二次尝试该功能:

功能doublenewlines(obj){ obj.value = obj.value.replace(/(rn | r | n)/g,'n'); obj.value = text.replace(doubleenewlinesre,“ $ 1nn $ 2”); }

那也没有用。经过大量的刮擦,调试和用警报框进行调试和戳戳之后,我终于发现了Internet Explorer的无证且几乎令人讨厌的晦涩难懂的“功能”:当您将字符串分配给输入对象的值属性时,IE默默地将您的NICE'N'线路转换为平台端。 Microsoft的文档没有注意到这一点,但我已经确认这在Internet Explorer的Windows和Mac版本上都会发生。

>
> bizzare,如果您分配给隐藏表单字段对象的值属性,则不会进行转换;仅当您分配到文本区域时,线路结尾才会更改。

以下代码,尽管函数似乎与刚刚列出的代码相同,但确实可以做我想要的代码:

>功能doublenewlines(obj){ var text = obj.value; text = text.replace(/(rn | r | n)/g,'n'); obj.value = text.replace(doubleenewlinesre,“ $ 1nn $ 2”); }


这样可以正常工作,因为标准化版本被分配给变量,而不是直接分配给TextArea对象的值属性 - 因此,IE的自动段线结束转换被延迟到脚本结束,并且没有使用我的第二个正则表达式发挥破坏。

>最后,关于样式的注释。如果我一直在考虑重复使用代码,而不是迅速解决问题,那么我可能会想出这样的事情:

> 功能doublenewlines(text){ text = text.replace(/(rn | r | n)/g,'n'); 返回text.replace(doubleenewlinesre,“ $ 1nn $ 2”); } 双新线

尽管它需要在OnClick处理程序中进行更多代码,但仅将字符串操作抽象抽象,但我将完全避免怪异的线结束转换问题。不过,至少我已经了解了另一个IE的小怪癖。>
经常询问有关JavaScript中线结尾的问题(常见问题解答)

> JavaScript中的线路结尾的重要性是什么?在JavaScript中,每个语句都被半分离(;)隔开。但是,JavaScript口译员足够聪明,可以在线路结束时自动插入半刚性,如果缺失。此功能称为自动插入(ASI)。尽管如此,手动将半隆来包括在JavaScript中如何添加JavaScript?

,您可以在JavaScript中添加新线路,这是良好的做法。新系列的逃生序列是“ n”。例如,如果您想在两个句子之间添加一条新线,则可以这样做:“ Hellonworld”。当打印此字符串时,“ Hello”和“ world”将在单独的行上。

>在JavaScript中'N'和'rn'之间有什么区别?但是,根据操作系统,它们的使用方式不同。 “ N”在基于UNIX的系统(例如Linux和Mac)中用作Newline字符,而Windows中使用了“ RN”。 “ r”字符代表一个马车返回,它将光标移至线路的开头而不前进到下一行。

>

>如何在JavaScript中添加多个线路断裂?

在JavaScript中添加多个线路断路,您可以使用“ N”'''''Escape序列多次使用多次。例如,“ Hellonnworld”将在“ Hello”和“ World”之间增加两个线路。

>

>我可以在JavaScript中使用HTML标签来进行线断路吗? “

”标签可用于添加线路休息。例如,当在HTML文档中显示时,“ Hello

世界”将在“ Hello”和“ World”之间增加界限。
>
>在JavaScript评论中,线结尾在JavaScript中的作用是什么? JavaScript中的单行评论从“ //”开始,并在划线中断。同一行上的“ //”之后的所有内容都被视为评论,并被JavaScript解释器忽略。

>

>我如何在JavaScript字符串中处理行末端?

在JavaScript字符串中,可以使用“ N”的逃生序列处理线端。该序列将新线字符插入字符串中,有效地创建了一个折断。这意味着,即使您忘记在语句末尾放置半隆,JavaScript仍然会正确解释它。

>

>我可以使用行末端来格式化我的JavaScript代码?

​​

是的,可以使用行末端来格式化JavaScript代码。正确使用线路结尾可以使您的代码更易读,更易于维护。通常的做法是为每个语句或在代码块(例如函数或循环)之后开始新的行。

>

>行结尾如何影响JavaScript代码的执行?但是,它们还可以根据自动插入(ASI)来影响代码的执行。如果将线路结束错误地放置,则可能会由于半旋律的自动插入而导致意外结果。因此,正确理解和使用线路结尾很重要。

>

以上是JavaScript中的线路结尾的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn