Vraag JavaScript hak / plak / snij het laatste teken in reeks af


Ik heb een touwtje, 12345.00en ik zou het leuk vinden om terug te keren 12345.0.

Ik heb gekeken trim, maar het ziet ernaar uit dat het alleen witruimte en trimmen is slice waarvan ik niet zie hoe dit zou werken. Suggesties?


1480
2018-06-04 20:31


oorsprong


antwoorden:


U kunt de substring functie:

var str = "12345.00";
str = str.substring(0, str.length - 1); // "12345.0"

Dit is het geaccepteerde antwoord, maar volgens de onderstaande gesprekken is de plak syntaxis is veel duidelijker:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"

2448
2018-06-04 20:35



Je kunt gebruiken plak! U moet er gewoon voor zorgen dat u weet hoe u het moet gebruiken. Positieve #s zijn relatief ten opzichte van het begin, negatieve getallen zijn relatief ten opzichte van het einde.

js>"12345.00".slice(0,-1)
12345.0

1154
2018-06-04 21:41



U kunt de substring methode van JavaScript-stringobjecten:

s = s.substring(0, s.length - 4)

Het verwijdert onvoorwaardelijk de laatste vier tekens uit de string s.

Maar als je dat wilt voorwaardelijk verwijder de laatste vier tekens, alleen als ze dat zijn precies  _bar:

var re = /_bar$/;
s.replace(re, "");

248
2017-08-30 03:08



De eenvoudigste methode is om de slice methode van de string, die negatieve posities mogelijk maakt (corresponderend met offsets vanaf het einde van de string):

var s = "your string";
var withoutLastFourChars = s.slice(0, -4);

Als je iets algemeners nodig hebt om alles na (en inclusief) het laatste onderstrepingsteken te verwijderen, kun je het volgende doen (zolang s bevat gegarandeerd ten minste één onderstrepingsteken):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"

149
2017-08-30 10:15



Voor een aantal als jouw voorbeeld, zou ik aanraden om dit over te doen substring:

alert(parseFloat('12345.00').toFixed(1)); // 12345.0

Houd er rekening mee dat dit het aantal echter wel zal afronden, wat ik wel zou willen, maar misschien niet:

alert(parseFloat('12345.46').toFixed(1)); // 12345.5

63
2018-06-04 20:42



De slice-functie van JavaScript gebruiken:

var string = 'foo_bar';
string = string.slice(0, -4); // Slice off last four characters here

Dit kan worden gebruikt om '_bar' aan het einde van een tekenreeks, van elke lengte, te verwijderen.


19
2018-02-27 11:14



Een reguliere expressie is waar je naar op zoek bent:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));

13
2017-08-30 03:09



Wat dacht je van:

var myString = "12345.00";
myString.substring(0, myString.length - 1);

8
2018-06-04 20:38



"a string".match(/(.*).$/)[1] // => a strin

"a string".match(/(.*).$/) // returns ["a string", "a strin"]

"a string".match(/(.*).{2}$/)[1] // to get two chars off => a stri
  1. (. *), neemt elk teken meerdere keren op
  2. ., komt overeen met laatste teken, in dit geval
  3. $, komt overeen met het einde van de string

6
2017-12-28 04:38



Gebruik regex:

var aStr = "12345.00";
aStr = aStr.replace(/.$/, '');

6
2017-07-29 04:58