替换字符串javascript中的最后一个字符

时间:2013-07-31 14:42:17

标签: javascript

我们如何替换字符串的最后一个字符?

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");

可能会有人帮助我

6 个答案:

答案 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),"+");

这将用“+”替换你的字符串的最后一个字符。