我有一个字符串,比如Hello world我需要替换索引3处的char。如何通过指定索引替换字符?

var str = "hello world";

我需要这样的东西

str.replaceAt(0,"h");

当前回答

这类似于Array.splice:

String.prototype.splice = function (i, j, str) {
    return this.substr(0, i) + str + this.substr(j, this.length);
};

其他回答

我这样做是为了使字符串正确的大小写,也就是说,第一个字母是大写的,其余的都是小写的:

function toProperCase(someString){
    
    return someString.charAt(0).toUpperCase().concat(someString.toLowerCase().substring(1,someString.length));
    
};

首先要做的是确保所有的字符串都是小写的- someString.toLowerCase()

然后它将第一个字符转换为大写字符-someString.charAt(0)。

然后它取剩下的字符串减去第一个字符的子字符串-someString.toLowerCase().substring(1,someString.length))

然后它将两者连接起来并返回新的字符串-someString.charAt(0).toUpperCase().concat(someString.toLowerCase().substring(1,someString.length))

可以为替换字符索引和替换字符添加新的参数,然后形成两个子字符串,替换被索引的字符,然后以大致相同的方式连接。

您可以使用子字符串函数在目标索引之前和目标索引之后首先选择文本,然后与您潜在的字符或字符串进行连接。这个更好

const myString = "Hello world";
const index = 3;
const stringBeforeIndex = myString.substring(0, index);
const stringAfterIndex = myString.substring(index + 1);
const replaceChar = "X";
myString = stringBeforeIndex + replaceChar + stringAfterIndex;
console.log("New string - ", myString)

or

const myString = "Hello world";
let index = 3;
myString =  myString.substring(0, index) + "X" + myString.substring(index + 1);

我做了一个类似于你问的函数,它检查字符串中的字符是否在不允许字符数组中如果是它就用"

    var validate = function(value){
        var notAllowed = [";","_",">","<","'","%","$","&","/","|",":","=","*"];
        for(var i=0; i<value.length; i++){
            if(notAllowed.indexOf(value.charAt(i)) > -1){
               value = value.replace(value.charAt(i), "");
               value = validate(value);
            }
       }
      return value;
   }

你可以试试

var strArr = str.split("");

strArr[0] = 'h';

str = strArr.join("");

你不能。取位置前后的字符并连接成一个新字符串:

var s = "Hello world";
var index = 3;
s = s.substring(0, index) + 'x' + s.substring(index + 1);