Ich benutze Stephen Chapmans Code auf about.com mit dem Titel "Wie man Zahlen in Wörter mit JavaScript umwandelt." Das Problem ist, ich kann nicht herausfinden, warum ein von Podio berechnetes Feld es nicht akzeptiert. Ich bekomme immer "Skript-Syntaxfehler: Ungültige Rückgabeanweisung". Ich machte eine Geige des Codes und testete die Dinge, und wenn ich das Ende return
ein alert
mache, zeigt es, was ich will. Was akzeptiert Podio in dieser Hinsicht nicht und welche Möglichkeiten gibt es dazu?Podio Nummer zu den Wörtern
Kontext: Ich benutze dies für automatische Vertragsgenerierung und ich würde gerne die Wörter verfügbar haben. Vielen Dank!
var th = ['', 'thousand', 'million', 'billion', 'trillion'];
var dg = ['zero', 'one', 'two', 'three', 'four',
'five', 'six', 'seven', 'eight', 'nine'
];
var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen',
'seventeen', 'eighteen', 'nineteen'
];
var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
var words = toWords(@PODIONUMBERFIELD);
function toWords(s) {
s = s.toString();
s = s.replace(/[\, ]/g, '');
if (s != parseFloat(s)) return 'not a number';
var x = s.indexOf('.');
if (x == -1) x = s.length;
if (x > 15) return 'too big';
var n = s.split('');
var str = '';
var sk = 0;
for (var i = 0; i < x; i++) {
if ((x - i) % 3 == 2) {
if (n[i] == '1') {
str += tn[Number(n[i + 1])] + ' ';
i++;
sk = 1;
} else if (n[i] != 0) {
str += tw[n[i] - 2] + ' ';
sk = 1;
}
} else if (n[i] != 0) {
str +=
dg[n[i]] + ' ';
if ((x - i) % 3 == 0) str += 'hundred ';
sk = 1;
}
if ((x - i) % 3 == 1) {
if (sk) str += th[(x - i - 1)/3] + ' ';
sk = 0;
}
}
if (x != s.length) {
var y = s.length;
str +=
'point ';
for (var i = x + 1; i < y; i++) str += dg[n[i]] + ' ';
}
return str.replace(/\s+/g, ' ');
}
Im Wetten Grund hat mit der Formatierung des Codes zu tun, um die Funktion zu verursachen vor der return-Anweisung zu schließen, wodurch die return-Anweisung illegal, und die Alert-Anweisung ist absolut gültig. Ich würde JSLint oder etwas ähnliches verwenden und sehen, was es sieht. Sie könnten auch JSBeautify verwenden, um ein Rendering-Problem zu beheben, das bei einigen Aspekten Ihrer Formatierung aufgetreten ist. – user1167442