Περισσότερα
Πώς μπορώ να αφαιρέσω έναν χαρακτήρα από μια συμβολοσειρά χρησιμοποιώντας Javascript;
Είμαι τόσο κοντά στο να το πάρω αυτό, αλλά απλά δεν είναι σωστό. Το μόνο που θα ήθελα να κάνω είναι να αφαιρέσω τον χαρακτήρα "r" από ένα αλφαριθμητικό. Το πρόβλημα είναι ότι υπάρχουν περισσότερες από μία περιπτώσεις του "r" στο αλφαριθμητικό. Ωστόσο, είναι πάντα ο χαρακτήρας στο δείκτη 4 (άρα ο 5ος χαρακτήρας).
παράδειγμα συμβολοσειράς: crt/r2002_2
Αυτό που θέλω: crt/2002_2
Αυτή η συνάρτηση αντικατάστασης αφαιρεί και τα δύο r
mystring.replace(/r/g, '')
Παράγει: ct/2002_2
Δοκίμασα αυτή τη συνάρτηση:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Λειτουργεί μόνο αν το αντικαταστήσω με έναν άλλο χαρακτήρα. Δεν θα τον αφαιρέσει απλά.
Καμία σκέψη;
309
3
θα αντικαταστήσει το
/r
με το/
χρησιμοποιώντας τοString.prototype.replace
.Εναλλακτικά θα μπορούσατε να χρησιμοποιήσετε regex με μια παγκόσμια σημαία (όπως προτείνεται από τον Erik Reppen & Sagar Gala, παρακάτω) για να αντικαταστήσετε όλες τις εμφανίσεις με
EDIT: Αφού όλοι διασκεδάζουν τόσο πολύ εδώ και ο user1293504 δεν φαίνεται να επιστρέφει σύντομα για να απαντήσει σε διευκρινιστικές ερωτήσεις, ορίστε μια μέθοδος για την αφαίρεση του Ν-οστού χαρακτήρα από μια συμβολοσειρά:
Δεδομένου ότι ο χρήστης1293504 χρησιμοποίησε την κανονική καταμέτρηση αντί για μηδενική καταμέτρηση, πρέπει να αφαιρέσουμε το 1 από το δείκτη, αν θέλετε να χρησιμοποιήσετε αυτό για να αναπαράγετε τον τρόπο με τον οποίο λειτουργεί το
charAt
μην αφαιρέσετε το 1 από το δείκτη στην 3η γραμμή και χρησιμοποιήστε τοtmp.splice(i, 1)
αντί αυτού.Υπάρχουν πάντα οι συναρτήσεις συμβολοσειρών, αν ξέρετε ότι θα αφαιρείτε πάντα τον τέταρτο χαρακτήρα:
char.length
είναι μηδέν. Πρέπει να προσθέσετε1
σε αυτή την περίπτωση για να παραλείψετε χαρακτήρα.