如何删除多余的水平空白(空格和制表符),但保留javascript中的换行符?
使用PHP:preg_replace( '/\h+/', ' ', $foo )
A lot of text text text text
A lot more text text text text text
应该像这样:
A lot of text text text text
A lot more text text text text text
答案 0 :(得分:3)
您可以使用同时包含制表符和空格的字符集:
\p{Me}
或者,改用const str = `A lot of text text text text
And more text text text text text`;
console.log(
str.replace(/[ ]+/g, ' ')
);
元字符:
\t
答案 1 :(得分:1)
您可以使用双负/[^\S\n]+/
查找不是换行符的空格字符:
let str = `A lot of text text text text
A lot more text text text text text`
console.log('before:',str)
// use a double negative (not a word character or newline)
str = str.replace(/[^\S\n]+/g,' ')
console.log('after:',str)
我不确定这是否可以捕获不同类型空格(en,em等)的所有条件,因为这取决于JavaScript regex处理\S
的方式,但这可能比所有方法更安全到目前为止列出的其他答案。
答案 2 :(得分:0)
const str = `A lot of text text text text
And more text text text text text`;
console.log(
str.replace(/[ \t]{2,}/g, ' ')
);
答案 3 :(得分:0)
outp = str.replace(/[ \t]+/g,' ');
此过滤器会过滤所有多余的空格和制表符