Was ist eine einfache Möglichkeit, die letzten beiden Zeichen einer Zeichenfolge zu löschen?
javascript
string
variables
erase
Tomkay
quelle
quelle
parseInt('245px', 10)
parseInt('09')
!verwenden
Dabei ist 10 die Radixdefinition , die
parseInt
auf einen Dezimalwert analysiert wirdVerwenden Sie parseInt, aber verwenden Sie parseInt nicht ohne Radix
Die Funktion parseInt () analysiert eine Zeichenfolge und gibt eine Ganzzahl zurück.
Die Unterschrift ist
parseInt(string, radix)
Das zweite Argument zwingt parseInt, ein Nummerierungssystem der Basis zehn zu verwenden.
Warum? Wenn $ (this) .attr ('num') "08" wäre, würde parsInt ohne Radix 0 werden
quelle
So konvertieren Sie einen Pixelwert ohne das "px" am Ende. benutze parseFloat.
Hinweis: Wenn Sie parseInt verwenden, ist der Wert korrekt, wenn der Wert eine Ganzzahl ist. Wenn der Wert wie 245,50 Pixel dezimal ist, wird der Wert auf 245 gerundet.
quelle
parseFloat()
der nicht wie folgt aussiehtparseInt()
(siehe developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/). Fragen / 8555649 /… )Dies macht genau das, was Sie fragen: Entfernen Sie die letzten beiden Zeichen einer Zeichenfolge:
quelle
Überraschenderweise ist die Teilstring-Methode
s.substr(0, s.length-2);
zum Entfernen des Teilstrings tatsächlich ziemlich viel schnellerpx
(ja, sie sieht nicht so sauber aus, und wenn ein Leerzeichen vorhanden ist, bleibt sie erhalten -"250px" -> "250"
vs"250 px" -> "250 "
).Wenn Sie Leerzeichen berücksichtigen möchten (was Sie wahrscheinlich sollten),
.trim()
verlangsamt die Verwendung der Funktion densubstr
Test tatsächlich so weit , dass dieparseInt
Methode tatsächlich überlegen wird.Ein zusätzlicher Vorteil der Verwendung
parseInt(s, 10)
besteht darin, dass Sie auch eine Typkonvertierung erhalten und diese sofort auf mathematische Funktionen anwenden können.Am Ende kommt es also wirklich darauf an, was Sie mit dem Ergebnis vorhaben.
substr
Methode ohne Trimmung wahrscheinlich die beste Wahl.s.substr(0, s.length-2) == 0
, ist die Verwendung dersubstr
Methode am besten, da"250 " == 250
(auch mit Leerzeichen) als resultierttrue
parseInt
Route in Betracht ziehen .http://jsperf.com/remove-px-from-coord
Die Tests auf jspref berücksichtigen ein Leerzeichen. Ich habe auch a
s.split('px')[0]
unds.replace(/ *px/g, '')
function ausprobiert , beide waren langsamer.Fühlen Sie sich frei, zusätzliche Testfälle hinzuzufügen.
quelle
Obwohl parseInt () eine gute Option ist, ist es dennoch gut, viele andere Lösungen zu haben
quelle
Überprüfen Sie http://www.w3schools.com/jsref/jsref_substr.asp In Ihrem Fall wäre so etwas
quelle
Ich bevorzuge:
"245px".replace(/px/,'')*1
da es den Eingang nicht umgibt.
Das
*1
ist auch für das Casting auf int.quelle
substr()
ist jetzt eine Legacy-Funktion ; Verwenden Siesubstring()
stattdessen: (Die Syntax ist in diesem Fall dieselbe. )Oder verwenden Sie
slice()
:slice()
sieht viel sauberer aus, IMO. Negative Werte zählen vom Ende zurück.quelle
rem
Werte verwendet werden kann.