Javascript和正则表达式:删除字符串中最后一个单词后面的空格

14

我有一个字符串:

var str = 'aaaaaa, bbbbbb, ccccc, ddddddd, eeeeee ';

我的目标是删除字符串中的最后一个空格。我将使用以下代码:

str.split(0,1);
但如果字符串中最后一个字符后面没有空格,这将会删除字符串的最后一个字符。

我想使用

str.replace("regex",'');

我是正则表达式的初学者,希望能得到帮助。

非常感谢。


2
可能是重复问题:https://dev59.com/P3M_5IYBdhLWcg3wWRoF - Scott Stevens
请参见https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/TrimRight。 - Shiplu Mokaddim
7个回答

38

在谷歌上搜索“javascript trim”,你会找到很多不同的解决方案。

这里是一个简单的解决方案:

trimmedstr = str.replace(/\s+$/, '');

4
如果你需要删除多个空格,可以使用str = str.replace(/\s*$/,""); - Nafis

12

当你需要删除所有末尾的空格时:

str.replace(/\s*$/,'');

当你需要去掉末尾的一个空格时:

str.replace(/\s?$/,'');

\s 不仅表示空格,还包括类似空格的字符,例如制表符。

如果你使用 jQuery,你也可以使用 trim 函数:

str = $.trim(str);

trim不仅删除字符串末尾的空格,还会删除开头的空格。


6

看起来你需要一个trimRight函数,但是它只在Javascript 1.8.1及以上版本中才可用。在此之前,你可以使用原型技术。

 String.prototype.trimRight=function(){return this.replace(/\s+$/,'');}
 // Now call it on any string.
 var a = "a string ";
 a = a.trimRight();

更多关于在JavaScript中截取字符串的信息,请参考此链接。另外,还可以查看兼容性列表


4
您可以使用以下代码删除单个尾随空格:
.replace(/ $/, "");

去掉所有的尾随空格:

.replace(/ +$/, "");
$在正常模式下匹配输入的结尾(在多行模式下,它匹配行的结尾)。

2

工作示例:

   var str  = "Hello World  ";
   var ans = str.replace(/(^[\s]+|[\s]+$)/g, '');

   alert(str.length+" "+ ans.length);

这个问题中的代码不按预期工作。尝试使用str = " Hello World ",开头的空格也会被删除,结果为str = "Hello World"。 - Davidson Lima
str.replace(/\s+$/, '')或者str.replace(/\s*$/,'')都可以完美地工作。 - Davidson Lima
对我来说很有效,谢谢。 - undefined

1
尝试使用正则表达式( +)$,因为在正则表达式中$匹配字符串的末尾。这将从字符串末尾删除所有空格。
一些程序具有strip函数来执行相同的操作,但我不认为标准的JavaScript库具有此功能。

正则表达式参考手册


0

快进到2021年,

trimEnd()函数正是为此而设计的!

它将从字符串末尾删除所有空格(包括空格、制表符、换行符)。

根据官方文档,它在每个主要浏览器中都得到支持。只有IE不支持。(说实话,考虑到微软自己已经在2021年8月停止了对IE的支持,你不应该关心IE!)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接