filtern Ist es möglich, Zahlen von der Variablen zu filtern.JQuery: Wie können wir Int von Variable
Ich kann Ihnen ein Beispiel zeigen, hier aus dem Link http://jsfiddle.net/sweetmaanu/82r5v/6/
ich nur Zahlen aus der Warnmeldung
filtern Ist es möglich, Zahlen von der Variablen zu filtern.JQuery: Wie können wir Int von Variable
Ich kann Ihnen ein Beispiel zeigen, hier aus dem Link http://jsfiddle.net/sweetmaanu/82r5v/6/
ich nur Zahlen aus der Warnmeldung
Änderung var order = $("#boxes").sortable("toArray");
-var order = $("#boxes").sortable("toArray").join(',').replace(/[a-zA-Z]/gi, "");
// Remove all non-digits from the string
'box1'.replace(/\D/g, ''); // => '1'
// Same, but try to make the string a number
Number('box1'.replace(/\D/g, '')); // => 1
// Shorthand for making an object a number (+o is the same as Number(o))
+'box1'.replace(/\D/g, ''); // => 1
// parseInt(s) works if the number is at the beginning
parseInt('1box'); // => 1
// but not if it occurs later
parseInt('box1'); // => NaN
Ersetzen Sie einfach die Box Zeichenfolge aus ihm heraus bekommen müssen.
for (var i = 0; i < order.length; i++) {
order[i] = order[i].replace('box', '');
}
Also statt box1, box2, box3, box4
wollen Sie 1,2,3,4
sehen Sie einen regulären Ausdruck wie this verwenden:
var order = $("#boxes").sortable("toArray") + "";
alert(order.replace(/[^0-9,]/g, ''));
Ich musste auch einen leeren String anhängen zu order
weil es nicht als String-Objekt erkannt wurde, obwohl der jQuer y Dokumentation sagt, es sollte sein, wenn Sie sortable("toArray")
anrufen.
Vielleicht mit regulären Ausdrücken etwas wie folgt aus:
`alert(order.join(',').match(/\d/g));`
das Array als Zahlen zurückzukehren.
(\d
Matches alle Ziffern, bedeutet g
eine globale Wildcard Spiel)
Eine Möglichkeit, es zu tun, indem sie mit regulären Ausdrücken - http://jsfiddle.net/holodoc/82r5v/14/
$(document).ready(function() {
var arrValuesForOrder = ["2", "1", "3", "4"];
var ul = $("#boxes"),
items = $("#boxes li.con");
for (var i = arrValuesForOrder[arrValuesForOrder.length - 1]; i >= 0; i--) {
// arrValuesForOrder[i] element to move
// i = index to move element at
ul.prepend(items.get(arrValuesForOrder[i] - 1));
}
$("#boxes").sortable({
handle : '.drag',
update: function() {
var order = $("#boxes").sortable("toArray");
var sorted = [];
$.each(order, function(index, value){
sorted.push(value.match(/box(\d+)/)[1]);
})
alert(sorted);
}
});
});
+1 Beat mich dazu! – msanford
Interessant ist die Verwendung dieser Methode gegenüber der Regex-Methode? –
@benedict_w Für mich wäre es Lesbarkeit. Regex kann wie eine überarbeitete Lösung aussehen und scannen, was wirklich bedeutet, "diese Zeichenfolge durch nichts zu ersetzen". Wenn Sie Regex fließend sprechen, scannt es wahrscheinlich genauso einfach. Aber ich denke, viele von uns konsultieren immer noch unsere Ressourcen jedes Mal, wenn wir Regex verwenden. ;-) Ich spare es gerne für eine Situation, in der ein einfacher Ersatz nicht gut genug ist. –