上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

小小的正则问题

[复制链接]
  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 767 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    851

    积分

    荣誉开发者

    积分
    851

    荣誉开发者油中2周年生态建设者

    发表于 2023-2-6 21:03:55 | 显示全部楼层 | 阅读模式
    悬赏1油猫币已解决

    image.png

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-2-6 21:03:56 | 显示全部楼层
    1. const fn = (str, ...args) => {
    2.     const raw = [...str.raw];
    3.     const arr = [raw.shift()];
    4.     while (raw.length) {
    5.         arr.push(args.shift(), raw.shift());
    6.     }
    7.     return arr.map(s => s.replace(/\n/g, '')).join('');
    8. };
    9. const a = 'hello';
    10. const b = 'world';
    11. console.log(fn`2\n${a}
    12. ${b}`);
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6763

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-2-6 21:54:15 | 显示全部楼层
    a.replace(/[\r\n]/g,'a')这样呢
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6763

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-2-6 21:54:26 | 显示全部楼层
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4197

    回帖

    4061

    积分

    管理员

    积分
    4061

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2023-2-6 22:15:26 | 显示全部楼层
    "123 ".trim() 这呢?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 767 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    851

    积分

    荣誉开发者

    积分
    851

    荣誉开发者油中2周年生态建设者

    发表于 2023-2-6 22:35:24 | 显示全部楼层

    李恒道 发表于 2023-2-6 21:54

    a.replace(/[\r\n]/g,'a')这样呢

    只能先对文本处理了,事实上看不见的换行和文本里的\n字样是一样的,都是\n;
    可以这样处理

    String.raw`2\n
    `.replace(/\n/mg, '').replace(/\\n/,'\n')

    先用String.raw禁止转义,用来区分\n和看不见的换行,再把看不见的换行替换掉,最后将禁止转义再替换回去。不过有个 缺点,不能用变量,也就是要处理的文本只能直接放入String.raw里使用。
    image.png
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/raw

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 767 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    851

    积分

    荣誉开发者

    积分
    851

    荣誉开发者油中2周年生态建设者

    发表于 2023-2-6 22:37:40 | 显示全部楼层
    王一之 发表于 2023-2-6 22:15
    "123 ".trim() 这呢?

    也不行,\n会被识别为换行符,只能先禁止转义
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 767 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    851

    积分

    荣誉开发者

    积分
    851

    荣誉开发者油中2周年生态建设者

    发表于 2023-2-6 22:44:10 | 显示全部楼层
    不过也是,用变量就转义了,要在没有转义前先禁止转义
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 767 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    851

    积分

    荣誉开发者

    积分
    851

    荣誉开发者油中2周年生态建设者

    发表于 2023-10-20 15:10:43 | 显示全部楼层

    cxxjackie 发表于 2023-2-6 21:03

    大佬,我有个需求,根据你的代码改了好多会也不行,是不是直接传递模板字符串变量的时候看的间的\n和看不见的\n没区别啊,这种情况下有解决办法吗

    var templateStr = `1 2\n3 4 5
    67`
    function getTemplateStrNewlineCharacterNumber(str) {
        //some code
        return result
    }
    console.log(getTemplateStrNewlineCharacterNumber(templateStr))

    匹配模板字符串不是\n的实际换行符,而不将\n视为换行符。

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-10-20 22:41:29 | 显示全部楼层
    tfsn20 发表于 2023-10-20 15:10
    [md]大佬,我有个需求,根据你的代码改了好多会也不行,是不是直接传递模板字符串变量的时候看的间的\n和 ...

    传变量不行,传出去就被转义成普通字符串了,标签函数是紧跟在模板字符串后面,在其初始化时作为一个预处理函数被使用的,而模板字符串在定义完成后就变成了一个普通字符串。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表