gpt4 book ai didi

javascript - 防止 ES6 模板字符串中的换行符

转载 作者:行者123 更新时间:2023-12-03 11:23:28 25 4
gpt4 key购买 nike

ESLint:403行超过最大行长120(max-len)

我有一个很长的字符串,我使用 ES6 模板字符串构建,但我希望它没有换行符:

var string = `Let me be the 'throws Exception’ to your 'public static void 
main (String[] args)’. I will accept whatever you give me my ${love}.`
console.log(string);

结果:
 Let me be the 'throws Exception’ to your 'public static void 
main (String[] args)’. I will accept whatever you give me xxx.

我的期望:
Let me be the 'throws Exception’ to your 'public static void main (String[] args)’. I will accept whatever you give me xxx.

需求 :
  • 我不能禁用 eslint 规则,因为强制执行是必要的。
  • 我不能将数据放在单独的文件中,因为数据是动态的。
  • 我无法连接多个较短的字符串,因为这工作量太大。
  • 最佳答案

    这是预期的行为。模板字面量解决的重要问题之一是 multiline strings :

    Any new line characters inserted in the source are part of the template literal.



    如果需要进一步处理字符串,可以使用其他 JS 功能来完成,例如正则表达式:
    var string = `Let me be the 'throws Exception’ to your 'public static void 
    main (String[] args)’. I will accept whatever you give me.`
    .replace(/[\n\r]+ */g, ' ');

    String.raw 是用于转换模板文字的内置函数。可以使用标签函数为模板文字提供自定义行为。需要注意的是 String.raw与默认模板转换器的处理方式不同 special characters .如果它们在字符串中使用,则应使用 unescape-js 额外处理它们。或类似的辅助功能。
    function singleLine(strsObj, ...values) {
    const strs = strsObj.raw
    .map(str => str.replace(/[\n\r]+ */g, ' '))
    .map(unescapeSpecialChars);
    return String.raw(
    {raw: strs },
    ...values
    );
    }


    var string = singleLine`Let me be the 'throws Exception’ to your 'public static void
    main (String[] args)’. I will accept whatever you give me.`;

    关于javascript - 防止 ES6 模板字符串中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46379115/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com