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.