用“,”替换字符串的结尾

时间:2016-01-25 20:21:32

标签: javascript regex

我有以下字符串值

var strVal = "This is the best way.";

我正在尝试替换“。”在字符串的末尾加上“,”。目前我有以下实施

strVal.replace(/.\s*$/, ", ")

如果字符串没有“。”,该怎么办?最后,当我尝试这个时,它用“,”替换最后一个字符。

解决此问题的最佳方法是什么,字符串值可以使用或不使用“。”结束?

当字符串值不以“。”结尾时

var strVal = "This is the best way";

它应该只是将“,”附加到字符串的末尾,它应该看起来像

“这是最好的方式,”

1 个答案:

答案 0 :(得分:5)

这是你的表达式被修改为按照要求行事:

strVal.replace(/\.?\s*$/, ", ");

正如评论中所述,.是正则表达式中的特殊字符,您需要使用\将其转义,因此它被解释为点。之后的?会使该字符成为可选字符。

此外,如果您正在寻找仅执行且完全符合所请求行为的表达式,您可以跳过原始表达式中的右侧修剪,并仅使用以下表达式进行替换:

strVal.replace(/\.?$/, ", ");