Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除去最后一行以外的所有尾随空格_Javascript_Regex - Fatal编程技术网

Javascript 除去最后一行以外的所有尾随空格

Javascript 除去最后一行以外的所有尾随空格,javascript,regex,Javascript,Regex,假设我有一个字符串: var str = 'I am a \nmultiline \nString.\n' 除了最后一个\n,我如何用'替换所有尾随空白字符 我试过: str.replace(/\s+$/gm, '') 但这又回来了 "I am a\nmultiline\nString." 我想要一些像 "I am a\nmultiline\nString.\n" \s也匹配换行符。所以我建议你使用下面的方法 str.replace(/[ \t]+$/gm, "") 或 m当正则表

假设我有一个字符串:

var str = 'I am a \nmultiline   \nString.\n'
除了最后一个
\n
,我如何用
'
替换所有尾随空白字符

我试过:

str.replace(/\s+$/gm, '')
但这又回来了

"I am a\nmultiline\nString."
我想要一些像

"I am a\nmultiline\nString.\n"

\s
也匹配换行符。所以我建议你使用下面的方法

str.replace(/[ \t]+$/gm, "")

m
当正则表达式使用锚点时,必须使用多行修饰符。上面的正则表达式在最后匹配任何类型的一个或多个空格字符,但不匹配换行符或回车符

例如:

> var str = 'I am a \nmultiline   \nString.\n';
undefined
> str.replace(/[ \t]+$/gm, "")
'I am a\nmultiline\nString.\n'

最后我使用了@AvinashRaj答案的变体,因为我想删除所有空白(同样,除了
\n
),而不仅仅是
\t

str.replace(/[ \f\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u202f\u205f​\u3000]+$/gm, '')

(From)

结尾是否总是有换行符?如果没有换行符,您想添加一个吗?谢谢您的回答,但我想删除除
\n
之外的所有空白字符,而不仅仅是``和
\t
,我使用了我的答案(见上文)。我选择这个作为正确答案,因为@hwnd的答案虽然简短,但不起作用(见我的评论)。即使添加了一个组,它也与这个答案非常相似,这稍微好一些,因为它使用了一个更干净的非捕获组。不是用“^”和“$”表示字符串的开头和结尾,而是表示行的开头和结尾。@QPaysTaxes这是一个拼写错误。。谢谢
str.replace(/[ \f\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u202f\u205f​\u3000]+$/gm, '')