【问题标题】:Why is my way of extracting newlines from textarea working with \r [duplicate]为什么我从 textarea 中提取换行符的方法是使用 \r [重复]
【发布时间】:2020-01-04 05:53:48
【问题描述】:

如果我将textarea 的值设置为"123456\r123" 并调用document.getElementById('myTextarea').value.indexOf("\n"),它会返回6,这是换行符的位置;但是为什么不返回-1,因为字符串中没有\n

【问题讨论】:

  • 你可以从这个 SO stackoverflow.com/questions/10376179/n-t-r-0-is-true" 链接得到你的答案
  • 谢谢,例如+"\n" == +"\r"。但似乎indexOf 正在将字符/字符串作为数字进行比较......虽然它正在寻找字符串中的字符串?!
  • 因为我们还有"\n" != "\r"

标签: javascript regex textarea newline


【解决方案1】:

我猜当您为 textarea 设置值时,浏览器会自动将“\r”转换为“\n”。 当我在浏览器中运行这些代码时,结果告诉我我猜的就是事实。

let textArea = document.getElementById("inputTextarea");

let value = "abcd\radc";

textArea.value = value;

let out = document.getElementById("outputPre");

document.getElementById("inputTextarea").addEventListener("click", () => {
    value = textArea.value;

    let chars = value.split("").map(s => s.charCodeAt(0));

    let lf = ["\r".charCodeAt(0), "\n".charCodeAt(0)];

    out.innerHTML = 'valueChars:<em>' + value.split("") + "</em><br/>ASCII:<em>" + chars.toString() + "</em>";
    /*valueChars:a,b,c,d,
    ,a,d,c ASCII:97,98,99,100,10,97,100,99*/

    console.info(lf); //13,10
});

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 2016-08-17
    • 1970-01-01
    • 2017-06-13
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多