我的JavaScript代码中有一个变量字符串,其中包含逗号分隔的单词和/或短语列表,例如:
字符串1:“abc,def hij,klm”
字符串2:“abc,def”
我想在字符串中的最后一个逗号之后插入单词'and'来获取
字符串1:“abc,def hij和klm”
字符串2:“abc和def”
我把以下代码放在一起:
// replace the last comma in the list with ", and"
var regEx1 = new RegExp(",(?=[A-z ]*$)" )
var commaDelimList = commaDelimList.replace(regEx1, ", and ");
问题是,如果逗号分隔的字符串只有两个项目用逗号分隔,则它不起作用。
所以上面例子的结果是
字符串1:“abc,def hij和klm”
字符串2:“abc,def”
为什么RegExp不起作用,我可以使用什么来获得我想要的结果?
答案 0 :(得分:1)
不确定正则表达式是否是正确的方式...
为什么不使用LastIndexOf并将其替换为字符串?
答案 1 :(得分:1)
由于这是一个相对简单的任务,一点点字符串操作可能是有益的 - 你也会实现更好的性能。
var str = 'abc, def, hij, klm',
index = str.lastIndexOf(','),
JOINER = ', and';
//'abc, def, hij, and klm'
str.slice(0, index) + JOINER + str.slice(index+1);
答案 2 :(得分:0)
没有尝试过你,但这有效
'abc, def'.replace( /,(?=[A-z ]*$)/, ", and" )