2016-08-08 9 views
0

ich eine Zeichenfolge, dieWie kann ich einen bestimmten Teil eines Strings in Javascript ersetzen

ATOM LEU 0.1234 C 0.123 0.32 0.34 

wie folgt aussieht Wie kann ich die C mit .replace()-& in Javascript ersetzen, indem nur die Lage von C bekommen? Der Brief von C kann im Grunde alles sein.

Ich möchte

ATOM LEU 0.1234 & 0.123 0.32 0.34. 
+0

' "ATOM LEU 0,1234 C 0,123 0,32 0,34" .replace ("C", "&")' –

+0

@RajaprabhuAravindasamy "Der Brief von C im Wesentlichen alles sein kann." – yuriy636

+0

Ich möchte durch den Ort von C nicht den eigentlichen Buchstaben selbst ersetzen. –

Antwort

4

Sie können es tun, indem substring() Verwendung

var str = "ATOM LEU 0.1234 C 0.123 0.32 0.34"; 
var res = str.substring(0, 16) + "&" + str.substring(17); 
console.log(str); //"ATOM LEU 0.1234 & 0.123 0.32 0.34" 
+0

Es ist möglicherweise besser, den Speicherort der Zeichenfolge zu finden, die Sie ersetzen möchten, anstatt einen statischen Index von 16 zu verwenden (Sie wissen möglicherweise nicht, dass die Teilzeichenfolge, die Sie ersetzen möchten, ist). Gute Lösung tho. –

+1

Ich würde vorschlagen, dies zu aktualisieren und verwenden Sie 'var res = [strstring (0, 16), strstring (17)]. Join (" & ")'. Es ist eine subtile Veränderung, aber es wird viel schneller laufen, wenn Sie viele von diesen auf einmal verarbeiten müssen. Auch in Ihrem Beispiel sollte es "console.log (res)" sagen, im Moment wird nur die ursprüngliche Zeichenfolge protokolliert – jmcgriz

+0

@empiric Es würde die erste Instanz des nicht eindeutigen Zeichens ersetzen. "Der Buchstabe von C kann im Grunde alles sein." bedeutet nicht, dass es nicht einzigartig für die Saite sein wird; nur dass es nicht "C" sein muss. –

0

var str = "ATOM LEU 0,1234 C 0,123 0,32 0,34";
var newStr = str.replace (str.charAt (16), "&");

+1

Auch wenn das Zeichen an Position 16 nicht eindeutig in der Zeichenfolge ist, wird jedes Zeichen ersetzt, egal welche Position es in – empiric

0

können Sie auch versuchen, diese:

var str = "ATOM LEU 0.1234 C 0.123 0.32 0.34"; 
var strExp = str.split(" "); 
var newStr = str.replace(strExp[3], "&"); 
console.log(newStr); 
+0

Wie weiß er, das 4. Element in der Reihe der Zeichenfolgen auszuwählen? –

+0

Bcz, ich habe angenommen, dieses Muster wird nicht geändert werden – rroxysam

0

Suchen Sie den Speicherort der Zeichenfolge, die Sie ersetzen möchten. Dann ersetzen Sie es mit dem, was Sie wollen. Ich schrieb dies nicht wissen, wie lange die Zeichenfolge, die Sie ersetzen möchten, sein wird.

var str = "ATOM LEU 0.1234 C 0.123 0.32 0.34"; 
var strToReplace = "C"; 
var indexOfStrToReplace = str.indexOf(strToReplace); 
var result = str.substring(0,indexOfStrToReplace) + "&" + str.substing(indexOfC + strToReplace.length); 
Verwandte Themen