Ich habe eine Zeichenkette, sagen wir mal Hello world
und ich muss das Zeichen bei Index 3 ersetzen. Wie kann ich ein Zeichen durch Angabe eines Indexes ersetzen?
var str = "hello world";
Ich brauche etwas wie
str.replaceAt(0,"h");
Ich habe eine Zeichenkette, sagen wir mal Hello world
und ich muss das Zeichen bei Index 3 ersetzen. Wie kann ich ein Zeichen durch Angabe eines Indexes ersetzen?
var str = "hello world";
Ich brauche etwas wie
str.replaceAt(0,"h");
Hier ist eine Version, die ich mir ausgedacht habe, wenn Sie Wörter oder einzelne Zeichen an ihrem Index in React/Javascript stylen wollen.
replaceAt( yourArrayOfIndexes, yourString/orArrayOfStrings )
Arbeitsbeispiel: https://codesandbox.io/s/ov7zxp9mjq
function replaceAt(indexArray, [...string]) {
const replaceValue = i => string[i] = <b>{string[i]}</b>;
indexArray.forEach(replaceValue);
return string;
}
Und hier ist eine weitere alternative Methode
function replaceAt(indexArray, [...string]) {
const startTag = '<b>';
const endTag = '</b>';
const tagLetter = i => string.splice(i, 1, startTag + string[i] + endTag);
indexArray.forEach(tagLetter);
return string.join('');
}
Und noch eine...
function replaceAt(indexArray, [...string]) {
for (let i = 0; i < indexArray.length; i++) {
string = Object.assign(string, {
[indexArray[i]]: <b>{string[indexArray[i]]}</b>
});
}
return string;
}
Ich habe eine Funktion, die etwas ähnliches tut, was Sie fragen, es prüft, ob ein Zeichen in der Zeichenfolge in einem Array von nicht zulässigen Zeichen ist, wenn es ist, ersetzt es mit ''
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;
}
Hier ist meine Lösung unter Verwendung des ternären und des Map-Operators. Besser lesbar, wartbar und leichter zu verstehen, wenn Sie mich fragen.
Es geht mehr um es6 und bewährte Verfahren.
function replaceAt() {
const replaceAt = document.getElementById('replaceAt').value;
const str = 'ThisIsATestStringToReplaceCharAtSomePosition';
const newStr = Array.from(str).map((character, charIndex) => charIndex === (replaceAt - 1) ? '' : character).join('');
console.log(`New string: ${newStr}`);
}
<input type="number" id="replaceAt" min="1" max="44" oninput="replaceAt()"/>
Sie können die folgende Funktion verwenden, um Character
ou String
an einer bestimmten Stelle eines Strings. Um alle folgenden Übereinstimmungsfälle zu ersetzen, verwenden Sie String.prototype.replaceAllMatches()
Funktion.
String.prototype.replaceMatch = function(matchkey, replaceStr, matchIndex) {
var retStr = this, repeatedIndex = 0;
for (var x = 0; (matchkey != null) && (retStr.indexOf(matchkey) > -1); x++) {
if (repeatedIndex == 0 && x == 0) {
repeatedIndex = retStr.indexOf(matchkey);
} else { // matchIndex > 0
repeatedIndex = retStr.indexOf(matchkey, repeatedIndex + 1);
}
if (x == matchIndex) {
retStr = retStr.substring(0, repeatedIndex) + replaceStr + retStr.substring(repeatedIndex + (matchkey.length));
matchkey = null; // To break the loop.
}
}
return retStr;
};
Test:
var str = "yash yas $dfdas.**";
console.log('Index Matched replace : ', str.replaceMatch('as', '*', 2) );
console.log('Index Matched replace : ', str.replaceMatch('y', '~', 1) );
Ausgabe:
Index Matched replace : yash yas $dfd*.**
Index Matched replace : yash ~as $dfdas.**
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.