2016-07-22 4 views
0

Ich möchte die aktuelle Zeichenfolge mit Javascript hinzufügen. Derzeit funktioniert es gut, aber ich mache es derzeit auf eine sehr schmutzige Art und Weise. Ich ersetze im Grunde die GANZE Zeichenfolge, anstatt sie einfach hinzuzufügen. Gibt es eine Möglichkeit, dass ich einfach ein Komma hinzufügen und meine Zeichenfolge fortsetzen kann?Mit JavaScript zur aktuellen Zeichenfolge hinzufügen

JS:

var mystring = "'bootstrap'" 
console.log(mystring.replace(/bootstrap/g , "'bootstrap', 'bootstrap2', 'bootstrap3'")); 

JSFiddle

+1

Ich persönlich sehe damit nichts falsch. Ein "Ersatz" soll ein Ding durch ein anderes ersetzen, auch wenn dieses andere Ding dem ersten ähnlich ist. Das Einzige, was ich hier seltsam finde, ist, dass Sie in Ihrem Ergebnis zu viele einfache Anführungszeichen haben. –

+0

In meinem Kommentar gehe ich davon aus, dass Ihre ursprüngliche Zeichenfolge länger ist als in Ihrem Beispiel, mit Ihrem Wert in der Mitte, wie 'someText, 'bootstrap', someOtherText'.Wenn das nicht der Fall ist, und Sie tatsächlich nur am Ende einer Zeichenfolge hinzufügen, dann stimme ich mit den Antworten, die kommen, die Sie einfach an die Zeichenfolge anhängen können. –

+0

ohne "bootstrap" zu wiederholen, aber Reihenfolge zu ignorieren, können Sie wie folgt mit Lookahead regex –

Antwort

1

ein Array und das Verfahren beizutreten.

var arr = []; 
 
var myString = "bootstrap"; 
 

 
arr.push(myString); 
 
arr.push(myString); 
 
arr.push("other string"); 
 
arr.push("bootstrap"); 
 

 
// combine them with a comma or something else 
 
console.log(arr.join(', '));

+0

Mein Problem ist, dass ich Inhalt aus einer Datei bekomme, deshalb habe ich ursprünglich ersetzt – user4756836

2

Sie können mithilfe des += Operator zum Ende eines Strings hinzuzufügen. See the docs in Bezug auf String-Operatoren.

var mystring = "'bootstrap'" 
 
mystring += ", 'bootstrap2'"; 
 
mystring += ", 'bootstrap3'"; 
 
console.log(mystring);

+0

Mein Problem ist, dass ich Inhalt aus einer Datei bekomme, weshalb ich ursprünglich ersetzt habe – user4756836

+0

Sie müssen zusätzliche Erklärung in hinzufügen die Frage nach dem Format des Inhalts, den Sie aus der Datei abrufen, wenn Sie diese Antwort nicht für ausreichend halten. – tnschmidt

2

Sie können Strings verketten mit der + operator:

var mystring = "'bootstrap'" + ","; 
 
console.log(mystring);

+0

Mein Problem ist, dass ich Inhalt aus einer Datei bekomme, weshalb ich ursprünglich ersetzen – user4756836

+0

@ user4756836, was meinst du, dass Sie den Inhalt aus einer Datei bekommen? Wie auch immer, Sie sollten den Inhalt immer noch in einer Variablen haben. Vielleicht möchten Sie Ihre Antwort aktualisieren, um zu zeigen, womit Sie beginnen und was Sie als Endergebnis erwarten. – KevBot

2

können Sie verketten (+ Operator) statt zu ersetzen, wenn Sie möchten nur, dass die zweite Zeichenfolge an die erste Zeichenfolge angehängt wird.

var mystring = "'bootstrap'" 
 
var newString = mystring +", "+ "'bootstrap', 'bootstrap2', 'bootstrap3'"; 
 
console.log(newString);

+0

Mein Problem ist, dass ich Inhalt aus einer Datei bekomme, weshalb ich ursprünglich ersetzt habe – user4756836

2

Was:

mystring += "'bootstrap2',"; 

oder

var arr = ["str1", "str2", "str3"]; 
var mystring = arr.map((e)=>{return "'"+e+"'";}).join(",") 

Array.map Funktion verwendet, um jede Zeichenfolge mit einzelnen Quates zu wickeln, als Sie Array. beitreten - verwendet um "," zu setzen ween Mitglieder

+0

Mein Problem ist, dass ich Inhalt aus einer Datei bekomme, weshalb ich ursprünglich ersetzen verwendet wurde – user4756836

0

Es ist nicht vorgeschlagen, aber wenn Sie möchten, Symbole zu halten und zu, um sich nicht, und wollen mit 'bootstrap' beginnen in einen String nur hinzuzufügen:

myString = "'bootstrap'"; 
 
console.log(myString.replace(/^(?='(bootstrap)')/, "'$12', '$13', "));

oder Sie können einfach Capture-Gruppe verwenden, um es kurz zu halten

mystring.replace(/'(bootstrap)'/, "'$1', '$12', '$13'") 
Verwandte Themen