2016-12-08 2 views
0

ich ein kleines Skript, um schrieb eine inkrementelle ID durch Zeichenkette zusammengesetzt zu haben, indem die Funktion Utilities.formatString mitUtilities.formatString nicht wie erwartet funktioniert

Beispiel: RQ001 -> RQ002 -> RQ00n

function myFunction() { 
    var str = "RQ001"; 
    var res = str.substring(2, 5); 'ok 
    res=Number(res)+1; 'ok 
    res=res.toString(); 'ok 
    res = "RQ" & Utilities.formatString("000", res); 'not working } 

Das Ergebnis ist "0".

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

1

Sie haben zwei Probleme. Sie müssen "+" für die Verkettung von Zeichenfolgen verwenden, und Ihre Methode zum Erstellen der Zeichenfolge gibt "002" nicht wie gewünscht zurück.

function myFunction() { 
    var str = "RQ001"; 
    var res = Number(str.substring(2, 5)) + 1; 
     res = "000" + String(res); 
     res = "RQ" + res.substring(res.length - 3, res.length); 
} 

Verwenden substring() Zeichenfolge Nummer zu formatieren und dann die "RQ" an den Anfang danach anhängen.

Sie können die Funktion auch so formatieren, dass der Originalschlüssel als Parameter verwendet wird. Auf diese Weise können Sie etwas wie newKey = incrementKey(oldKey) sagen.

function incrementKey(str) { 
    var res = Number(str.substring(2, 5)) + 1; 
     res = "000" + String(res); 
     res = "RQ" + res.substring(res.length - 3, res.length); 
     return res; 
} 
2

& ist kein String-Verkettungsoperator. Verwenden Sie stattdessen "+".

Verwandte Themen