在javascript-php的上下文中回车的意义是什么?

时间:2010-11-16 19:57:32

标签: php javascript validation jquery-validate carriage-return

我在表单的文本字段中输入数据,其中包含2个换行符,但没有回车符。 (我可以通过jlen中的strlen或使用str.charCodeAt()函数来确认。)

现在我将此表单提交给php脚本,该脚本以某种方式接收回车符以及新行字符。

基本上,js中的\n在php中变为\r\n

我有两个问题:

  1. 有谁知道为什么会这样?
  2. 为什么回车真的用于?
  3. 用例:服务器端和客户端的表单验证,用于限制字段的字符数。

2 个答案:

答案 0 :(得分:4)

JavaScript将换行视为\n,但是当您通过HTTP提交表单时,JavaScript与它无关(除了检查文本)。 Windows将换行视为\r\n,因此当您使用Windows并在文本框中点击返回键时,它实际上会在框中输入\r\n。当您将此数据发布到服务器时,JavaScript不会执行此操作(除非您使用Ajax),您的浏览器会这样做。您的浏览器将使用与操作系统相同的换行设置,这就是您在PHP文件中看到它们而不是在JavaScript中看到它们的原因。不同的操作系统以不同的方式处理换行。有关更多背景信息,请参阅here

修改
回车实际上来自旧的打印机命令。回车意味着“将打印机墨盒送回行首”和换行符(或换行符),“转到页面的下一行。”

答案 1 :(得分:0)

浏览器正在将\n替换为\r\n。 CR这些天只需要将光标返回到输出控制台/终端的第一列,以及那些不能单独处理LF的遗留系统。