我有以下字符串值
var strVal = "This is the best way.";
我正在尝试替换“。”在字符串的末尾加上“,”。目前我有以下实施
strVal.replace(/.\s*$/, ", ")
如果字符串没有“。”,该怎么办?最后,当我尝试这个时,它用“,”替换最后一个字符。
解决此问题的最佳方法是什么,字符串值可以使用或不使用“。”结束?
当字符串值不以“。”结尾时
var strVal = "This is the best way";
它应该只是将“,”附加到字符串的末尾,它应该看起来像
“这是最好的方式,”
答案 0 :(得分:5)
这是你的表达式被修改为按照要求行事:
strVal.replace(/\.?\s*$/, ", ");
正如评论中所述,.
是正则表达式中的特殊字符,您需要使用\
将其转义,因此它被解释为点。之后的?
会使该字符成为可选字符。
此外,如果您正在寻找仅执行且完全符合所请求行为的表达式,您可以跳过原始表达式中的右侧修剪,并仅使用以下表达式进行替换:
strVal.replace(/\.?$/, ", ");