2

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

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

有人可以帮我吗

4

6 回答 6

3

简单的正则表达式替换应该做你想要的:

checkbox_data1 = checkbox_data1.replace(/.$/,1);

通用版本:

mystr = mystr.replace(/.$/,"replacement");

请记住,除非您这样做,否则仅调用str.replace()不会应用更改- 也就是说,将函数的返回值应用回变量strstr = str.replace()replace()str

于 2013-07-31T14:44:53.233 回答
1

使用正则表达式...

var checkbox_data1 = '111111111111 11   ';
checkbox_data1.replace(/ $/,'$1');
console.log(checkbox_data1);

这将替换字符串中的最后一个空格。

于 2013-07-31T14:52:11.247 回答
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
于 2013-07-31T14:47:50.680 回答
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';
}
于 2013-07-31T14:51:55.993 回答
0

您在我们的字符串中有一些空间,请尝试一下

checkbox_data1=checkbox_data1.replace(checkbox_data1.charAt(checkbox_data1.length-4), "1   ");

然后添加空格

console.log(checkbox_data1+"   after");
于 2013-07-31T14:52:15.600 回答
0

你可以试试这个

var checkbox_data1=checkbox_data1.replace(checkbox_data1.slice(-1),"+");

这会将您的字符串的最后一个字符替换为“+”。

于 2013-07-31T15:17:41.943 回答