Jak usunąć tekst z łańcucha?


Odpowiedzi:


1156

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Dokumenty


Aby usunąć wszystkie wystąpienia, użyj:

var ret = "data-123".replace(/data-/g,'');

PS: Funkcja replace zwraca nowy ciąg i pozostawia oryginalny ciąg bez zmian, więc użyj wartości zwracanej przez funkcję po wywołaniu replace ().


Jak zamienić wiele wyrażeń? Czy musisz używać wielu połączeń .replace?
— Dror Bar

124

To nie ma nic wspólnego z jQuery. Możesz użyć replacedo tego funkcji JavaScript :

var str = "data-123";
str = str.replace("data-", "");

Możesz także przekazać wyrażenie regularne do tej funkcji. W poniższym przykładzie zastąpiłoby wszystko oprócz cyfr:

str = str.replace(/[^0-9\.]+/g, "");

Czy możesz wyjaśnić, co robi wyrażenie regularne? Nie rozumiem, dlaczego zastępuje ciąg znaków oprócz liczb, jeśli 0-9zostało to wskazane.
— rotimi-best

60

Możesz użyć "data-123".replace('data-','');, jak wspomniano, ale ponieważ replace()tylko zastępuje PIERWSZĄ instancję pasującego tekstu, jeśli łańcuch był podobny do "data-123data-"tego wtedy

"data-123data-".replace('data-','');

zastąpi tylko pierwszy pasujący tekst. I twój wynik będzie"123data-"

PRÓBNY

Jeśli więc chcesz, aby wszystkie dopasowania tekstu zostały zastąpione ciągiem, musisz użyć wyrażenia regularnego z taką gflagą:

"data-123data-".replace(/data-/g,'');

I twój wynik będzie "123"

DEMO2


28

możesz użyć slice (), który zachowuje znaki od początku do końca (dołączony punkt końcowy)

   string.slice(start , end);

oto kilka exmp, aby pokazać, jak to działa:

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"

Próbny


23

Wystarczy zwykły stary JavaScript - jQuery nie jest konieczne do tak prostego zadania:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Zobacz: .replace()dokumenty w MDN, aby uzyskać dodatkowe informacje i sposób użycia.


17

Dawny:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

Mam nadzieję, że to zadziała dla ciebie.


11

Byłem przyzwyczajony do metody C # (Sharp) String.Remove. W JavaScript nie ma funkcji usuwania ciągu, ale jest funkcja substr. Możesz użyć funkcji substr raz lub dwa razy, aby usunąć znaki z łańcucha. Można wykonać następującą funkcję, aby usunąć znaki przy indeksie początkowym do końca łańcucha, podobnie jak metoda przeciążająca najpierw metodę C # String.Remove (int startIndex):

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

i / lub możesz również wykonać następującą funkcję, aby usunąć znaki przy indeksie początkowym i policzyć, podobnie jak w przypadku drugiego przeciążenia metody c # String.Remove (int startIndex, int count):

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

a następnie możesz użyć tych dwóch funkcji lub jednej z nich do własnych potrzeb!

Przykład:

alert(Remove("data-123", 0, 5));

Wyjście: 123


9

Ta mała funkcja, którą stworzyłem, zawsze działała dla mnie :)

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 the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Wiem, że to nie jest najlepsze, ale zawsze działało dla mnie :)


W odpowiedzi pokazujesz, w jaki sposób funkcja zamiana łańcucha działa mniej więcej, ale w rzeczywistości użycie funkcji zamiany łańcucha jest znacznie prostsze i łatwiejsze niż Twój!

9
str.split('Yes').join('No'); 

Spowoduje to zastąpienie wszystkich wystąpień tego określonego ciągu od oryginalnego ciągu.


8

Używanie match()i Number()do zwracania numberzmiennej:

Number(("data-123").match(/\d+$/));

// strNum = 123

Oto, co robi powyższe stwierdzenie ... działające w środku:

  1. str.match(/\d+$/)- zwraca tablicę zawierającą dopasowania do dowolnej długości liczb na końcu str. W takim przypadku zwraca tablicę zawierającą element pojedynczego ciągu ['123'].
  2. Number()- konwertuje go na typ liczbowy. Ponieważ tablica zwrócona z .match()zawiera pojedynczy element Number()zwróci liczbę.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.