我正在尝试用JavaScript捕获新行字符。
例如,将字符串作为我的函数的参数;
s = "some_text_with_a_n_new_line";
Document.write(s);
它会被我的脚本检测到;
现在,如果我从文本区域获取文本并按 Enter 以生成换行符。它将被检测到并解释为 。现在文本区域和工作脚本在我的桌面上。窗口 10.
当我将其上传到服务器(Windows "Godaddy"上的IIS 7)时,它不再工作,所以我尝试了一些变体,例如\r,\r它们都不起作用。实际上,这对我来说并不重要,因为我正在寻找的只是逃跑。
这是我用来查找它们的一段脚本:
nex = string.indexOf(tokout[i]); // where tokout = 'n'
spacer = 1; //spacer to escape found token
spc = tokin.length; ///last token
if(tokin[spc-1] === 'n'){ //// spacer to set cursor after token
spacer = 2;
}
BBCode = input.substr(curseur,nex+spacer); // we have bbcode
该脚本在我的桌面上工作,但在服务器上我无法获得换行符!
工作原理:
我得到了的位置。将光标的位置设置在它之后。BBcode中的是换行符。
由于某种原因,它只能在我的PC上工作,而不能在服务器上工作。所以我认为它必须是服务器解释断线的方式!
它们不被解释为空格。它们显示为空格。要按原样显示,您可以用预标记括起来。例如
document.write('<pre>' + s + '</pre>');
另外,您应该查找而不是//n
即 s.indexOf('n')
如果尝试输出到文档,可以将n
替换为<br/>
例如 s.replace(/n/g, '<br/>')
如果你想在HTML中看到换行符,你必须使用<br />
HTML标签:
document.write("some_text_with_a_<br />_new_line");
但是在javascript中n
是一个有效的换行符。例如,当您使用控制台.log或警报时,您将看到 2 行:
console.log("some_text_with_a_n_new_line");
alert("some_text_with_a_n_new_line");