Ik heb een data-123
string.
Hoe kan ik data-
uit de tekenreeks verwijderen terwijl ik de 123
verlaat?
Antwoord 1, autoriteit 100%
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
Antwoord 2, autoriteit 10%
Dit heeft niets te maken met jQuery. U kunt hiervoor de JavaScript-functie replace
gebruiken:
var str = "data-123";
str = str.replace("data-", "");
Je kunt ook een regex aan deze functie doorgeven. In het volgende voorbeeld zou het alles vervangen behalve cijfers:
str = str.replace(/[^0-9\.]+/g, "");
Antwoord 3, autoriteit 5%
U kunt "data-123".replace('data-','');
gebruiken, zoals vermeld, maar omdat replace()
alleen de EERSTEinstantie van de overeenkomende tekst, als uw tekenreeks zoiets was als "data-123data-"
dan
"data-123data-".replace('data-','');
vervangt alleen de eerste overeenkomende tekst. En je output is "123data-"
Dus als je wilt dat alle tekstovereenkomsten worden vervangen in een string, moet je een reguliere expressie gebruiken met de g
-vlag als volgt:
"data-123data-".replace(/data-/g,'');
En je output is "123"
Antwoord 4, autoriteit 2%
u kunt slice() gebruiken om tekens tussen begin tot eind te herhalen (inclusief eindpunt)
string.slice(start , end);
hier is een voorbeeld om te laten zien hoe het werkt:
var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end so output is "12"
var mystr=(",246").slice(1); // returens "246"
Antwoord 5, autoriteit 2%
Gewoon oud JavaScript is voldoende – jQuery is niet nodig voor zo’n eenvoudige taak:
var myString = "data-123";
var myNewString = myString.replace("data-", "");
Zie:.replace()
documenten op MDNvoor aanvullende informatie en gebruik.
Antwoord 6
Bijvoorbeeld:-
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
Hopelijk werkt dit voor u.
Antwoord 7
Deze kleine functie die ik heb gemaakt heeft altijd voor mij gewerkt 🙂
String.prototype.deleteWord = function (searchTerm) {
var str = this;
var n = str.search(searchTerm);
while (str.search(searchTerm) > -1) {
n = str.search(searchTerm);
str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
}
return str;
}
// Use it like this:
var string = "text is the cool!!";
string.deleteWord('the'); // Returns text is cool!!
Ik weet dat het niet de beste is, maar het heeft altijd voor mij gewerkt 🙂
Antwoord 8
str.split('Yes').join('No');
Dit vervangt alle exemplaren van die specifieke tekenreeks van de originele tekenreeks.
Antwoord 9
Ik was gewend aan de C# (Sharp) String.Remove-methode.
In Javascript is er geen verwijderfunctie voor string, maar er is een substr-functie.
U kunt de functie substr een of twee keer gebruiken om tekens uit de tekenreeks te verwijderen.
U kunt de volgende functie maken om tekens van de startindex tot het einde van de tekenreeks te verwijderen, net zoals de c#-methode eerst String.Remove(int startIndex) overbelast:
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
en/of je kunt ook de volgende functie maken om karakters te verwijderen bij start index en count, net als de c# methode second overload String.Remove(int startIndex, int count):
function Remove(str, startIndex, count) {
return str.substr(0, startIndex) + str.substr(startIndex + count);
}
en dan kunt u deze twee functies of een van hen gebruiken voor uw behoeften!
Voorbeeld:
alert(Remove("data-123", 0, 5));
Uitvoer: 123
Antwoord 10
Gebruik match()
en Number()
om een number
variabele te retourneren:
Number(("data-123").match(/\d+$/));
// strNum = 123
Dit is wat de bovenstaande verklaring doet… het midden houden:
str.match(/\d+$/)
– geeft een array terug die overeenkomsten bevat met een willekeurige lengte van getallen aan het einde vanstr
. In dit geval retourneert het een array met een enkel stringitem['123']
.Number()
– converteert het naar een getaltype. Omdat de array die wordt geretourneerd door.match()
een enkel element bevat, zalNumber()
het getal retourneren.
Antwoord 11
Prestaties
Vandaag 2021.01.14 voer ik tests uit op MacOs HighSierra 10.13.6 op Chrome v87, Safari v13.1.2 en Firefox v84 voor gekozen oplossingen.
Resultaten
Voor alle browsers
- oplossingen Ba, Cb en Db zijn snel/snelst voor lange strings
- oplossingen Ca, Da zijn snel/snelst voor korte snaren
- oplossingen Ab en E zijn traag voor lange snaren
- oplossingen Ba, Bb en F zijn traag voor korte snaren
Details
Ik voer 2 testgevallen uit:
- korte tekenreeks – 10 tekens – u kunt het HIER
- lange reeks – 1 000 000 tekens – u kunt het HIER
uitvoeren
uitvoeren
Het onderstaande fragment presenteert oplossingen
Aa
Ab
Ba
Bb
Ca
Cb
Da
DB
E
F
Antwoord 12
Een andere manier om alle instanties van een tekenreeks te vervangen, is door de nieuwe (vanaf augustus 2020) String.prototype.replaceAll()
methode.
Het accepteert een tekenreeks of RegEx als eerste argument en vervangt alle gevonden overeenkomsten met zijn tweede parameter, ofwel een tekenreeks of een functie om de tekenreeks te genereren.
Wat de ondersteuning betreft, is deze methode op het moment van schrijven overgenomen in de huidige versies van alle belangrijke desktopbrowsers* (zelfs Opera!), behalve IE. Voor mobiel worden iOS SafariiOS 13.7+, Android Chromev85+en Android Firefoxv79+ook allemaal ondersteund.
* Dit omvat Edge/Chrome v85+, Firefox v77+, Safari 13.1+ en Opera v71+
Het zal even duren voordat gebruikers updaten naar ondersteunde browserversies, maar nu er brede browserondersteuning is, is tijd het enige obstakel.
Referenties:
- MDN
- Kan ik gebruiken – Huidige informatie over browserondersteuning
- TC39-voorstelrepo voor
.replaceAll()
U kunt uw huidige browser testen in het onderstaande fragment:
//Example coutesy of MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';
const regex = /dog/gi;
try {
console.log(p.replaceAll(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the ferret reacted, was it really lazy?"
console.log(p.replaceAll('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the monkey reacted, was it really lazy?"
console.log('Your browser is supported!');
} catch (e) {
console.log('Your browser is unsupported! :(');
}
.as-console-wrapper: {
max-height: 100% !important;
}