我们如何替换字符串的最后一个字符?
SetCookie('pre_checkbox', "111111111111 11 ")
checkbox_data1 = GetCookie('pre_checkbox');
if(checkbox_data1[checkbox_data1.length-1]==" "){
checkbox_data1[checkbox_data1.length-1]= '1';
console.log(checkbox_data1+"after");
}
out put on console : 111111111111 11 after
最后一个角色没有被'1'取代,不知道为什么
也尝试过:checkbox_data1=checkbox_data1.replace(checkbox_data1.charAt(checkbox_data1.length-1), "1");
可能会有人帮助我
答案 0 :(得分:1)
简单的正则表达式替换应该做你想要的:
checkbox_data1 = checkbox_data1.replace(/.$/,1);
通用版本:
mystr = mystr.replace(/.$/,"replacement");
请注意,只有调用str.replace()
才会将更改应用于str
,除非您执行str = str.replace()
- 也就是说,将replace()
函数的返回值应用回变量str
答案 1 :(得分:1)
使用正则表达式...
var checkbox_data1 = '111111111111 11 ';
checkbox_data1.replace(/ $/,'$1');
console.log(checkbox_data1);
这将替换字符串中的最后一个空格。
答案 2 :(得分:0)
Rob说,字符串是不可变的。例如:
var str = "abc";
str[0] = "d";
console.log(str); // "abc" not "dbc"
你可以这样做:
var str = "111 ";
str = str.substr(0, str.length-1) + "1"; // this makes a _new_ string
答案 3 :(得分:0)
这也是一种方式,没有正则表达式:)
var string = '111111111111 11 ';
var tempstr = '';
if (string[string.length - 1] === ' ') {
for (i = 0; i < string.length - 1; i += 1) {
tempstr += string[i];
}
tempstr += '1';
}
答案 4 :(得分:0)
你的字符串中有一些空格请试试
checkbox_data1=checkbox_data1.replace(checkbox_data1.charAt(checkbox_data1.length-4), "1 ");
然后在
中添加空格console.log(checkbox_data1+" after");
答案 5 :(得分:0)
你可以试试这个,
var checkbox_data1=checkbox_data1.replace(checkbox_data1.slice(-1),"+");
这将用“+”替换你的字符串的最后一个字符。