V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
muunala10221
V2EX  ›  JavaScript

请教一个 JS 字符串去掉换行符问题

  •  
  •   muunala10221 · 2021-03-09 17:21:04 +08:00 · 1408 次点击
    这是一个创建于 1354 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我怎么都去不掉这个 \n 人晕了

    // 定义

    let arr = "CREATE TABLE IF NOT EXISTS ZJTEST.AUDIT_SQL(↵ AUDIT_TIME DATETIME(6), ↵ SCHEMANAME VARCHAR(30), ↵ MODULE VARCHAR(48), ↵ OSUSER VARCHAR(30), ↵ MACHINE VARCHAR(64), ↵ PROGRAM VARCHAR(48), ↵ SQL_ID VARCHAR(13), ↵ SQL_TEXT VARCHAR(1000), ↵ SQL_FULLTEXT LONGTEXT↵);"

    // 第一次去除 arr = arr.replace(/(\r\n\t|\n|\r\t)/gm, '') //去除结果 "CREATE TABLE IF NOT EXISTS ZJTEST.AUDIT_SQL(↵ AUDIT_TIME DATETIME(6), ↵ SCHEMANAME VARCHAR(30), ↵ MODULE VARCHAR(48), ↵ OSUSER VARCHAR(30), ↵ MACHINE VARCHAR(64), ↵ PROGRAM VARCHAR(48), ↵ SQL_ID VARCHAR(13), ↵ SQL_TEXT VARCHAR(1000), ↵ SQL_FULLTEXT LONGTEXT↵);" // 第二次去除 arr = arr.replace('↵', '') // 去除结果 "CREATE TABLE IF NOT EXISTS ZJTEST.AUDIT_SQL( AUDIT_TIME DATETIME(6), ↵ SCHEMANAME VARCHAR(30), ↵ MODULE VARCHAR(48), ↵ OSUSER VARCHAR(30), ↵ MACHINE VARCHAR(64), ↵ PROGRAM VARCHAR(48), ↵ SQL_ID VARCHAR(13), ↵ SQL_TEXT VARCHAR(1000), ↵ SQL_FULLTEXT LONGTEXT↵);"

    muunala10221
        1
    muunala10221  
    OP
       2021-03-09 17:22:47 +08:00
    明明编辑好了格式发出来又是乱码。。
    我用了几种方法去除,都不行 第一种:arr = arr.replace(/(\r\n\t|\n|\r\t)/gm, ''); 第二种:arr = arr.replace('↵', '');
    第三种:arr = arr.replace(/[\r\n]/g, ''); 第四种:a r r = arr.replace(/[\n\t]/g, '')
    zhuweiyou
        2
    zhuweiyou  
       2021-03-09 17:24:50 +08:00
    .replace(/↵/g, '')
    tsvico
        3
    tsvico  
       2021-03-09 17:27:14 +08:00
    arr.replaceAll("\n","")
    superrichman
        4
    superrichman  
       2021-03-09 17:32:26 +08:00 via iPhone
    把表达式里面两个\t 去掉
    muunala10221
        5
    muunala10221  
    OP
       2021-03-09 17:33:00 +08:00
    @zhuweiyou
    @tsvico
    不行 在 chrome 发给接口的时候 那里面还是有\n
    muunala10221
        6
    muunala10221  
    OP
       2021-03-09 17:34:13 +08:00
    @superrichman 试了 不行 发给接口的时候 还是有"\n"
    Kasumi20
        7
    Kasumi20  
       2021-03-09 17:36:25 +08:00
    没有复现,/\n/g 搞定,js 字符串字面哪来的\r
    muunala10221
        8
    muunala10221  
    OP
       2021-03-09 17:42:31 +08:00
    @Kasumi20 急病乱投医 去不掉能用的方法都试了一下,在 chrome 控制台里看着是没了,但是发给接口的时候还是有\n
    wqgogogo
        9
    wqgogogo  
       2021-03-09 17:54:57 +08:00
    let arr = "CREATE TABLE IF NOT EXISTS ZJTEST.AUDIT_SQL(↵ AUDIT_TIME DATETIME(6), ↵ SCHEMANAME VARCHAR(30), ↵ MODULE VARCHAR(48), ↵ OSUSER VARCHAR(30), ↵ MACHINE VARCHAR(64), ↵ PROGRAM VARCHAR(48), ↵ SQL_ID VARCHAR(13), ↵ SQL_TEXT VARCHAR(1000), ↵ SQL_FULLTEXT LONGTEXT↵);"
    console.log(arr);
    let reg = /↵*/g;
    let flag = reg.test(arr);
    console.info(flag);
    let result = arr.replace(reg, "");
    console.log(result);
    tyx1703
        10
    tyx1703  
       2021-03-09 18:01:24 +08:00
    arr.replace(/[\n↵]/g, '')
    tyx1703
        11
    tyx1703  
       2021-03-09 18:04:18 +08:00
    你的方法 1, 3, 4 去掉了换行但是没有去掉 `↵`,方法 2 去掉了 `↵`但是没去掉换行
    zhuweiyou
        12
    zhuweiyou  
       2021-03-09 18:09:41 +08:00
    @muunala10221 你发出来的内容 就只有 ↵ ,并没有 \n , 你发原文啊 发个 github 链接
    muunala10221
        13
    muunala10221  
    OP
       2021-03-09 18:25:58 +08:00
    @zhuweiyou
    @tyx1703
    @wqgogogo
    @Kasumi20 已经解决了 感谢感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2847 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:15 · PVG 17:15 · LAX 01:15 · JFK 04:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.