Lan*_*uhn 407 javascript newline
是\n
在Javascript中所有平台的通用换行字符序列?如果没有,我如何确定当前环境的字符?
我不是在询问HTML换行元素(<BR/>
).我问的是JavaScript字符串中使用的换行符字符序列.
mer*_*tor 355
我刚刚使用这个愚蠢的JavaScript测试了一些浏览器:
function log_newline(msg, test_value) {
if (!test_value) {
test_value = document.getElementById('test').value;
}
console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '')
+ ' ' + (test_value.match(/\n/) ? 'LF' : ''));
}
log_newline('HTML source');
log_newline('JS string', "foo\nbar");
log_newline('JS template literal', `bar
baz`);
Run Code Online (Sandbox Code Playgroud)
<textarea id="test" name="test">
</textarea>
Run Code Online (Sandbox Code Playgroud)
Windows上的IE8和Opera 9使用\r\n
.我测试的所有其他浏览器(Windows上的Safari 4和Firefox 3.5以及Linux上的Firefox 3.0)都使用\n
.\n
虽然IE和Opera会在\r\n
内部将其转换回来,但它们在设置值时都可以正常处理.有一个SitePoint文章,其中包含一些在Javascript中称为Line endings的更多细节.
还需要注意的是,这是独立于HTML文件本身的实际行结尾的(都\n
和\r\n
给出相同的结果).
提交表单时,所有浏览器都会将新行标准化为%0D%0A
URL编码.要查看,请加载例如data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
,然后按"提交"按钮.(某些浏览器会阻止已提交页面的加载,但您可以在控制台中看到URL编码的表单值.)
不过,我认为你真的不需要做任何决定.如果您只想在换行符上拆分文本,可以执行以下操作:
lines = foo.value.split(/\r\n|\r|\n/g);
Run Code Online (Sandbox Code Playgroud)
Sin*_*our 81
是的,这是普遍的.
虽然'\n'
是通用换行符,但您必须记住,根据您的输入,换行符前面可能会有回车符('\r'
).
Qas*_*sim 61
不要使用\n,试试这个:
var string = "this\
is a multi\
line\
string";
Run Code Online (Sandbox Code Playgroud)
只需输入反斜杠并继续卡车'!奇迹般有效.
Qui*_*ncy 53
最简单的方法就是处理新行字符的所有情况,而不是检查应用它的情况.例如,如果您需要替换换行符,请执行以下操作:
htmlstring = stringContainingNewLines.replace(/(\r\n|\n|\r)/gm, "<br>");
Run Code Online (Sandbox Code Playgroud)
ISC*_*SCI 13
电子邮件链接功能我使用"%0D%0A"
function sendMail() {
var bodydata="Before "+ "%0D%0A";
bodydata+="After"
var MailMSG = "mailto:aaa@sss.com"
+ "?cc=07@sss.com"
+ "&subject=subject"
+ "&body=" + bodydata;
window.location.href = MailMSG;
}
Run Code Online (Sandbox Code Playgroud)
[HTML]
<a href="#" onClick="sendMail()">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)
获取当前浏览器的行分隔符:
function getLineSeparator() {
var textarea = document.createElement("textarea");
textarea.value = "\n";
return textarea.value;
}
Run Code Online (Sandbox Code Playgroud)
您可以在 ES6 中使用 `` 引号(位于 Esc 按钮下方)。所以你可以这样写:
var text = `fjskdfjslfjsl
skfjslfkjsldfjslfjs
jfsfkjslfsljs`;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1043900 次 |
最近记录: |