我想用 . 替换,
字符串中逗号 ()的最后一个索引and
。
例如。a,b,c
和'a,b and c'
例如 q,w,e
与q,w and e
我想用 . 替换,
字符串中逗号 ()的最后一个索引and
。
例如。a,b,c
和'a,b and c'
例如 q,w,e
与q,w and e
lastIndexOf
查找传入的参数字符串的最后一个索引。
var x = 'a,b,c';
var pos = x.lastIndexOf(',');
x = x.substring(0,pos)+' and '+x.substring(pos+1);
console.log(x);
你也可以使用这个功能
function replace_last_comma_with_and(x) {
var pos = x.lastIndexOf(',');
return x.substring(0, pos) + ' and ' + x.substring(pos + 1);
}
console.log(replace_last_comma_with_and('a,b,c,d'));
使用正则表达式的替代解决方案:
function replaceLastCommaWith(x, y) {
return x.replace(/,(?=[^,]*$)/, " " + y + " ");
}
console.log(replaceLastCommaWith("a,b,c,d", "and")); //a,b,c and d
console.log(replaceLastCommaWith("a,b,c,d", "or")); //a,b,c or d
这个正则表达式应该可以完成工作
"a,b,c,d".replace(/(.*),(.*)$/, "$1 and $2")
尝试以下
var x= 'a,b,c,d';
x = x.replace(/,([^,]*)$/, " and $1");
尝试
var str = 'a,b,c', replacement = ' and ';
str = str.replace(/,([^,]*)$/,replacement+'$1');
alert(str)
一个简单的循环将帮助你
首先在你的字符串中找到 all 的索引,
var str = "a,b,c,d,e";
var indices = [];
for(var i=0; i<str.length;i++) {
if (str[i] === ",") indices.push(i);
}
indices = [1,3,5,7] as it start from 0
len = indices.length()
str[indices[len - 1]] = '.'
这将解决您的目的。