JavaScript去除字符串末尾的空格和句号

3

我正在尝试从字符串中删除所有尾随的空格和句点,以便如果我使用以下任一示例:

var string = "  ..  bob is a string .";

或者

var string = " .  bob is a string . ..";

他们最终会成为:
"bob is a string"

我对正则表达式一窍不通,但我在这里找到了一个函数可以去除尾部空格:这里

str.replace(/^\s+|\s+$/g, "");

我尝试进行修改以包括句号,但它仍然只会删除尾部的空白字符:

str.replace(/^[\s+\.]|[\s+\.]$/g, "");

有人能告诉我如何做到这一点,并向我解释使用的正则表达式吗?

2个回答

5
你的正则表达式已经差不多了,你只需要将量词 (+) 放在字符类 ([]) 外面就可以了:
var str = " .  bob is a string . ..";
str.replace(/^[.\s]+|[.\s]+$/g, "");
//"bob is a string"

谢谢,为什么您不需要转义.字符呢?我读到.可以匹配几乎任意字符。 - George Reith
@GeorgeReith 因为 . 在字符类内部,所以它表示字面上的一个 .。在字符类外部,你需要对其进行转义。就像你在正则表达式中使用的 + 并不表示量词,因为它在字符类内部,否则你也需要对 + 进行转义。在字符类内部,你只需要转义字符类中特殊的字符,比如 ]^- 和反斜杠。 - Esailija

0

试试这个:

var str = " .  bob is a string . ..";
var stripped = str.replace(/^[\s.]+|[\s.]+$/g,"");

在字符类([])中,不需要转义.。这将删除任何前导或尾随的空格和句点。

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