【问题标题】:removing space and retaining the new line?删除空间并保留新线?
【发布时间】:2011-03-15 11:09:02
【问题描述】:

我想替换字符串中的所有空格,但我需要保持换行符不变?

choiceText=choiceText.replace(/\s/g,'');

india
aus //both are in differnt line 

作为indaus给予

我希望换行应该保留并删除 s

【问题讨论】:

  • indaus: 嗯,ia 去哪儿了?
  • 你的输入是india\naus,你的输出是indaus:你可能忘记了ia

标签: javascript regex


【解决方案1】:

\s 表示任何空格,包括换行符和制表符。 是一个空格。只删除空格:

choiceText=choiceText.replace(/ /g,''); // remove spaces

您可以删除“任何空格除了换行符”; most regex flavours count \s as [ \t\r\n],所以我们只需取出\n\r,你就会得到:

choiceText=choiceText.replace(/[ \t]/g,''); // remove spaces and tabs

【讨论】:

  • tht 给出了相同的结果。无线
【解决方案2】:

您不能为此使用\s(任何空格)。改用字符集:[ \t\f\v]

【讨论】:

  • choiceText=choiceText.replace([\t\f\v]/g,'') 是这样的吗?
  • 是的,只是不要忘记开头的“/” :-)
【解决方案3】:

\s 正则表达式模式匹配所有空白字符。根据MDN\s 是“相当于[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]”。

\s 中减去换行符、换行符、字符的最简单方法是使用反向、\S速记字符类,将其放入 否定字符类[^\S],并在其中添加\n,即[^\S\n]

查看 JavaScript 演示:

console.log(
  "india\naus \f\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff."
     .replace(/[^\S\n]+/g, ''))

【讨论】:

    猜你喜欢
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 2018-12-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多